ARM GAS /tmp/cc1IKhbe.s page 1 1 .cpu cortex-m4 2 .eabi_attribute 27, 1 3 .eabi_attribute 28, 1 4 .eabi_attribute 23, 1 5 .eabi_attribute 24, 1 6 .eabi_attribute 25, 1 7 .eabi_attribute 26, 1 8 .eabi_attribute 30, 2 9 .eabi_attribute 34, 1 10 .eabi_attribute 18, 4 11 .file "stm32g4xx_hal_cordic.c" 12 .text 13 .Ltext0: 14 .cfi_sections .debug_frame 15 .section .text.HAL_CORDIC_MspInit,"ax",%progbits 16 .align 1 17 .p2align 2,,3 18 .weak HAL_CORDIC_MspInit 19 .syntax unified 20 .thumb 21 .thumb_func 22 .fpu fpv4-sp-d16 24 HAL_CORDIC_MspInit: 25 .LFB331: 26 .file 1 "Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c" 1:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 2:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ****************************************************************************** 3:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @file stm32g4xx_hal_cordic.c 4:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @author MCD Application Team 5:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief CORDIC HAL module driver. 6:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * This file provides firmware functions to manage the following 7:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * functionalities of the CORDIC peripheral: 8:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * + Initialization and de-initialization functions 9:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * + Peripheral Control functions 10:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * + Callback functions 11:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * + IRQ handler management 12:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * + Peripheral State functions 13:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * 14:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @verbatim 15:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ================================================================================ 16:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ##### How to use this driver ##### 17:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ================================================================================ 18:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** [..] 19:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** The CORDIC HAL driver can be used as follows: 20:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 21:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (#) Initialize the CORDIC low level resources by implementing the HAL_CORDIC_MspInit(): 22:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) Enable the CORDIC interface clock using __HAL_RCC_CORDIC_CLK_ENABLE() 23:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) In case of using interrupts (e.g. HAL_CORDIC_Calculate_IT()) 24:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+++) Configure the CORDIC interrupt priority using HAL_NVIC_SetPriority() 25:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+++) Enable the CORDIC IRQ handler using HAL_NVIC_EnableIRQ() 26:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+++) In CORDIC IRQ handler, call HAL_CORDIC_IRQHandler() 27:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) In case of using DMA to control data transfer (e.g. HAL_CORDIC_Calculate_DMA()) 28:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+++) Enable the DMA2 interface clock using 29:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** __HAL_RCC_DMA2_CLK_ENABLE() 30:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+++) Configure and enable two DMA channels one for managing data transfer from 31:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** memory to peripheral (input channel) and another channel for managing data 32:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** transfer from peripheral to memory (output channel) ARM GAS /tmp/cc1IKhbe.s page 2 33:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+++) Associate the initialized DMA handle to the CORDIC DMA handle 34:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** using __HAL_LINKDMA() 35:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+++) Configure the priority and enable the NVIC for the transfer complete 36:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** interrupt on the two DMA channels. 37:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** Resort to HAL_NVIC_SetPriority() and HAL_NVIC_EnableIRQ() 38:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 39:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (#) Initialize the CORDIC HAL using HAL_CORDIC_Init(). This function 40:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) resorts to HAL_CORDIC_MspInit() for low-level initialization, 41:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 42:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (#) Configure CORDIC processing (calculation) using HAL_CORDIC_Configure(). 43:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** This function configures: 44:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) Processing functions: Cosine, Sine, Phase, Modulus, Arctangent, 45:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** Hyperbolic cosine, Hyperbolic sine, Hyperbolic arctangent, 46:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** Natural log, Square root 47:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) Scaling factor: 1 to 2exp(-7) 48:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) Width of input data: 32 bits input data size (Q1.31 format) or 16 bits 49:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** input data size (Q1.15 format) 50:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) Width of output data: 32 bits output data size (Q1.31 format) or 16 bits 51:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** output data size (Q1.15 format) 52:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) Number of 32-bit write expected for one calculation: One 32-bits write 53:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** or Two 32-bit write 54:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) Number of 32-bit read expected after one calculation: One 32-bits read 55:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** or Two 32-bit read 56:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) Precision: 1 to 15 cycles for calculation (the more cycles, the better precision) 57:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 58:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (#) Four processing (calculation) functions are available: 59:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) Polling mode: processing API is blocking function 60:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** i.e. it processes the data and wait till the processing is finished 61:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** API is HAL_CORDIC_Calculate 62:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) Polling Zero-overhead mode: processing API is blocking function 63:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** i.e. it processes the data and wait till the processing is finished 64:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** A bit faster than standard polling mode, but blocking also AHB bus 65:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** API is HAL_CORDIC_CalculateZO 66:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) Interrupt mode: processing API is not blocking functions 67:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** i.e. it processes the data under interrupt 68:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** API is HAL_CORDIC_Calculate_IT 69:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) DMA mode: processing API is not blocking functions and the CPU is 70:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** not used for data transfer, 71:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** i.e. the data transfer is ensured by DMA 72:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** API is HAL_CORDIC_Calculate_DMA 73:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 74:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (#) Call HAL_CORDIC_DeInit() to de-initialize the CORDIC peripheral. This function 75:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (++) resorts to HAL_CORDIC_MspDeInit() for low-level de-initialization, 76:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 77:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** *** Callback registration *** 78:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ============================================= 79:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 80:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** The compilation define USE_HAL_CORDIC_REGISTER_CALLBACKS when set to 1 81:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** allows the user to configure dynamically the driver callbacks. 82:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** Use Function @ref HAL_CORDIC_RegisterCallback() to register an interrupt callback. 83:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 84:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** Function @ref HAL_CORDIC_RegisterCallback() allows to register following callbacks: 85:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) ErrorCallback : Error Callback. 86:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) CalculateCpltCallback : Calculate complete Callback. 87:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) MspInitCallback : CORDIC MspInit. 88:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) MspDeInitCallback : CORDIC MspDeInit. 89:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** This function takes as parameters the HAL peripheral handle, the Callback ID ARM GAS /tmp/cc1IKhbe.s page 3 90:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** and a pointer to the user callback function. 91:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 92:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** Use function @ref HAL_CORDIC_UnRegisterCallback() to reset a callback to the default 93:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** weak function. 94:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** @ref HAL_CORDIC_UnRegisterCallback takes as parameters the HAL peripheral handle, 95:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** and the Callback ID. 96:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** This function allows to reset following callbacks: 97:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) ErrorCallback : Error Callback. 98:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) CalculateCpltCallback : Calculate complete Callback. 99:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) MspInitCallback : CORDIC MspInit. 100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) MspDeInitCallback : CORDIC MspDeInit. 101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** By default, after the HAL_CORDIC_Init() and when the state is HAL_CORDIC_STATE_RESET, 103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** all callbacks are set to the corresponding weak functions: 104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** examples @ref HAL_CORDIC_ErrorCallback(), @ref HAL_CORDIC_CalculateCpltCallback(). 105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** Exception done for MspInit and MspDeInit functions that are 106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** reset to the legacy weak function in the HAL_CORDIC_Init()/ @ref HAL_CORDIC_DeInit() only when 107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** these callbacks are null (not registered beforehand). 108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if not, MspInit or MspDeInit are not null, the HAL_CORDIC_Init()/ @ref HAL_CORDIC_DeInit() 109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** keep and use the user MspInit/MspDeInit callbacks (registered beforehand) 110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** Callbacks can be registered/unregistered in HAL_CORDIC_STATE_READY state only. 112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** Exception done MspInit/MspDeInit that can be registered/unregistered 113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** in HAL_CORDIC_STATE_READY or HAL_CORDIC_STATE_RESET state, 114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** thus registered (user) MspInit/DeInit callbacks can be used during the Init/DeInit. 115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** In that case first register the MspInit/MspDeInit user callbacks 116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** using @ref HAL_CORDIC_RegisterCallback() before calling @ref HAL_CORDIC_DeInit() 117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** or HAL_CORDIC_Init() function. 118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** When The compilation define USE_HAL_CORDIC_REGISTER_CALLBACKS is set to 0 or 120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** not defined, the callback registration feature is not available and all callbacks 121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** are set to the corresponding weak functions. 122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** @endverbatim 124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * 125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ****************************************************************************** 126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @attention 127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * 128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** *

© Copyright (c) 2019 STMicroelectronics. 129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * All rights reserved.

130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * 131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * This software component is licensed by ST under BSD 3-Clause license, 132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the "License"; You may not use this file except in compliance with the 133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * License. You may obtain a copy of the License at: 134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * opensource.org/licenses/BSD-3-Clause 135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * 136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ****************************************************************************** 137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Includes ------------------------------------------------------------------*/ 140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #include "stm32g4xx_hal.h" 141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #if defined(CORDIC) 143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #ifdef HAL_CORDIC_MODULE_ENABLED 144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** @addtogroup STM32G4xx_HAL_Driver 146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @{ ARM GAS /tmp/cc1IKhbe.s page 4 147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** @defgroup CORDIC CORDIC 150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief CORDIC HAL driver modules. 151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @{ 152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Private typedef -----------------------------------------------------------*/ 155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Private define ------------------------------------------------------------*/ 156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Private macro -------------------------------------------------------------*/ 157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Private variables ---------------------------------------------------------*/ 158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Private function prototypes -----------------------------------------------*/ 159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** @defgroup CORDIC_Private_Functions CORDIC Private Functions 161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @{ 162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** static void CORDIC_WriteInDataIncrementPtr(CORDIC_HandleTypeDef *hcordic, int32_t **ppInBuff); 164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** static void CORDIC_ReadOutDataIncrementPtr(CORDIC_HandleTypeDef *hcordic, int32_t **ppOutBuff); 165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** static void CORDIC_DMAInCplt(DMA_HandleTypeDef *hdma); 166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** static void CORDIC_DMAOutCplt(DMA_HandleTypeDef *hdma); 167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** static void CORDIC_DMAError(DMA_HandleTypeDef *hdma); 168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @} 170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Exported functions --------------------------------------------------------*/ 173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** @defgroup CORDIC_Exported_Functions CORDIC Exported Functions 175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @{ 176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** @defgroup CORDIC_Exported_Functions_Group1 Initialization and de-initialization functions 179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Initialization and Configuration functions. 180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * 181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** @verbatim 182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ============================================================================== 183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ##### Initialization and de-initialization functions ##### 184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ============================================================================== 185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** [..] This section provides functions allowing to: 186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) Initialize the CORDIC peripheral and the associated handle 187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) DeInitialize the CORDIC peripheral 188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) Initialize the CORDIC MSP (MCU Specific Package) 189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) De-Initialize the CORDIC MSP 190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** [..] 192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** @endverbatim 194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @{ 195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Initialize the CORDIC peripheral and the associated handle. 199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure. 200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval HAL status 201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef HAL_CORDIC_Init(CORDIC_HandleTypeDef *hcordic) 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { ARM GAS /tmp/cc1IKhbe.s page 5 204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check the CORDIC handle allocation */ 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic == NULL) 206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check the instance */ 212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** assert_param(IS_CORDIC_ALL_INSTANCE(hcordic->Instance)); 213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #if USE_HAL_CORDIC_REGISTER_CALLBACKS == 1 215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->State == HAL_CORDIC_STATE_RESET) 216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Allocate lock resource and initialize it */ 218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->Lock = HAL_UNLOCKED; 219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Reset callbacks to legacy functions */ 221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCallback = HAL_CORDIC_ErrorCallback; /* Legacy weak ErrorCallback 222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->CalculateCpltCallback = HAL_CORDIC_CalculateCpltCallback; /* Legacy weak CalculateCplt 223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->MspInitCallback == NULL) 225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->MspInitCallback = HAL_CORDIC_MspInit; /* Legacy weak MspInit */ 227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Initialize the low level hardware */ 230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->MspInitCallback(hcordic); 231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #else 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->State == HAL_CORDIC_STATE_RESET) 234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Allocate lock resource and initialize it */ 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->Lock = HAL_UNLOCKED; 237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Initialize the low level hardware */ 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_CORDIC_MspInit(hcordic); 240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* (USE_HAL_CORDIC_REGISTER_CALLBACKS) */ 242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set CORDIC error code to none */ 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode = HAL_CORDIC_ERROR_NONE; 245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Reset pInBuff and pOutBuff */ 247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->pInBuff = NULL; 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->pOutBuff = NULL; 249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Reset NbCalcToOrder and NbCalcToGet */ 251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->NbCalcToOrder = 0U; 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->NbCalcToGet = 0U; 253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Reset DMADirection */ 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->DMADirection = CORDIC_DMA_DIR_NONE; 256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change CORDIC peripheral state */ 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_READY; 259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ ARM GAS /tmp/cc1IKhbe.s page 6 261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_OK; 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief DeInitialize the CORDIC peripheral. 266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure. 267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval HAL status 268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef HAL_CORDIC_DeInit(CORDIC_HandleTypeDef *hcordic) 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check the CORDIC handle allocation */ 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic == NULL) 273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check the parameters */ 279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** assert_param(IS_CORDIC_ALL_INSTANCE(hcordic->Instance)); 280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change CORDIC peripheral state */ 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_BUSY; 283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #if USE_HAL_CORDIC_REGISTER_CALLBACKS == 1 285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->MspDeInitCallback == NULL) 286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->MspDeInitCallback = HAL_CORDIC_MspDeInit; 288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* De-Initialize the low level hardware */ 291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->MspDeInitCallback(hcordic); 292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #else 293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* De-Initialize the low level hardware: CLOCK, NVIC, DMA */ 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_CORDIC_MspDeInit(hcordic); 295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* USE_HAL_CORDIC_REGISTER_CALLBACKS */ 296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set CORDIC error code to none */ 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode = HAL_CORDIC_ERROR_NONE; 299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Reset pInBuff and pOutBuff */ 301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->pInBuff = NULL; 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->pOutBuff = NULL; 303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Reset NbCalcToOrder and NbCalcToGet */ 305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->NbCalcToOrder = 0U; 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->NbCalcToGet = 0U; 307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Reset DMADirection */ 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->DMADirection = CORDIC_DMA_DIR_NONE; 310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change CORDIC peripheral state */ 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_RESET; 313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Reset Lock */ 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->Lock = HAL_UNLOCKED; 316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ ARM GAS /tmp/cc1IKhbe.s page 7 318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_OK; 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Initialize the CORDIC MSP. 323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic CORDIC handle 324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval None 325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** __weak void HAL_CORDIC_MspInit(CORDIC_HandleTypeDef *hcordic) 327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 27 .loc 1 327 0 28 .cfi_startproc 29 @ args = 0, pretend = 0, frame = 0 30 @ frame_needed = 0, uses_anonymous_args = 0 31 @ link register save eliminated. 32 .LVL0: 328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Prevent unused argument(s) compilation warning */ 329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** UNUSED(hcordic); 330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* NOTE : This function should not be modified, when the callback is needed, 332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** the HAL_CORDIC_MspInit can be implemented in the user file 333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 33 .loc 1 334 0 34 0000 7047 bx lr 35 .cfi_endproc 36 .LFE331: 38 0002 00BF .section .text.HAL_CORDIC_Init,"ax",%progbits 39 .align 1 40 .p2align 2,,3 41 .global HAL_CORDIC_Init 42 .syntax unified 43 .thumb 44 .thumb_func 45 .fpu fpv4-sp-d16 47 HAL_CORDIC_Init: 48 .LFB329: 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check the CORDIC handle allocation */ 49 .loc 1 203 0 50 .cfi_startproc 51 @ args = 0, pretend = 0, frame = 0 52 @ frame_needed = 0, uses_anonymous_args = 0 53 .LVL1: 205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 54 .loc 1 205 0 55 0000 B0B1 cbz r0, .L6 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 56 .loc 1 233 0 57 0002 90F82130 ldrb r3, [r0, #33] @ zero_extendqisi2 203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check the CORDIC handle allocation */ 58 .loc 1 203 0 59 0006 10B5 push {r4, lr} 60 .LCFI0: 61 .cfi_def_cfa_offset 8 62 .cfi_offset 4, -8 63 .cfi_offset 14, -4 233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { ARM GAS /tmp/cc1IKhbe.s page 8 64 .loc 1 233 0 65 0008 03F0FF02 and r2, r3, #255 66 000c 0446 mov r4, r0 67 000e 53B1 cbz r3, .L11 68 .LVL2: 69 .L5: 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 70 .loc 1 244 0 71 0010 0020 movs r0, #0 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 72 .loc 1 258 0 73 0012 0123 movs r3, #1 244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 74 .loc 1 244 0 75 0014 6062 str r0, [r4, #36] 248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 76 .loc 1 248 0 77 0016 C4E90100 strd r0, r0, [r4, #4] 252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 78 .loc 1 252 0 79 001a C4E90300 strd r0, r0, [r4, #12] 255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 80 .loc 1 255 0 81 001e 6061 str r0, [r4, #20] 258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 82 .loc 1 258 0 83 0020 84F82130 strb r3, [r4, #33] 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 84 .loc 1 262 0 85 0024 10BD pop {r4, pc} 86 .LVL3: 87 .L11: 236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 88 .loc 1 236 0 89 0026 80F82020 strb r2, [r0, #32] 239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 90 .loc 1 239 0 91 002a FFF7FEFF bl HAL_CORDIC_MspInit 92 .LVL4: 93 002e EFE7 b .L5 94 .LVL5: 95 .L6: 96 .LCFI1: 97 .cfi_def_cfa_offset 0 98 .cfi_restore 4 99 .cfi_restore 14 208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 100 .loc 1 208 0 101 0030 0120 movs r0, #1 102 .LVL6: 262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 103 .loc 1 262 0 104 0032 7047 bx lr 105 .cfi_endproc 106 .LFE329: 108 .section .text.HAL_CORDIC_MspDeInit,"ax",%progbits 109 .align 1 ARM GAS /tmp/cc1IKhbe.s page 9 110 .p2align 2,,3 111 .weak HAL_CORDIC_MspDeInit 112 .syntax unified 113 .thumb 114 .thumb_func 115 .fpu fpv4-sp-d16 117 HAL_CORDIC_MspDeInit: 118 .LFB349: 119 .cfi_startproc 120 @ args = 0, pretend = 0, frame = 0 121 @ frame_needed = 0, uses_anonymous_args = 0 122 @ link register save eliminated. 123 0000 7047 bx lr 124 .cfi_endproc 125 .LFE349: 127 0002 00BF .section .text.HAL_CORDIC_DeInit,"ax",%progbits 128 .align 1 129 .p2align 2,,3 130 .global HAL_CORDIC_DeInit 131 .syntax unified 132 .thumb 133 .thumb_func 134 .fpu fpv4-sp-d16 136 HAL_CORDIC_DeInit: 137 .LFB330: 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check the CORDIC handle allocation */ 138 .loc 1 270 0 139 .cfi_startproc 140 @ args = 0, pretend = 0, frame = 0 141 @ frame_needed = 0, uses_anonymous_args = 0 142 .LVL7: 272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 143 .loc 1 272 0 144 0000 90B1 cbz r0, .L15 270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check the CORDIC handle allocation */ 145 .loc 1 270 0 146 0002 10B5 push {r4, lr} 147 .LCFI2: 148 .cfi_def_cfa_offset 8 149 .cfi_offset 4, -8 150 .cfi_offset 14, -4 282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 151 .loc 1 282 0 152 0004 0223 movs r3, #2 153 0006 0446 mov r4, r0 154 0008 80F82130 strb r3, [r0, #33] 294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* USE_HAL_CORDIC_REGISTER_CALLBACKS */ 155 .loc 1 294 0 156 000c FFF7FEFF bl HAL_CORDIC_MspDeInit 157 .LVL8: 298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 158 .loc 1 298 0 159 0010 0020 movs r0, #0 160 0012 6062 str r0, [r4, #36] 302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 161 .loc 1 302 0 162 0014 C4E90100 strd r0, r0, [r4, #4] ARM GAS /tmp/cc1IKhbe.s page 10 306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 163 .loc 1 306 0 164 0018 C4E90300 strd r0, r0, [r4, #12] 309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 165 .loc 1 309 0 166 001c 6061 str r0, [r4, #20] 312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 167 .loc 1 312 0 168 001e 84F82100 strb r0, [r4, #33] 315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 169 .loc 1 315 0 170 0022 84F82000 strb r0, [r4, #32] 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 171 .loc 1 319 0 172 0026 10BD pop {r4, pc} 173 .LVL9: 174 .L15: 175 .LCFI3: 176 .cfi_def_cfa_offset 0 177 .cfi_restore 4 178 .cfi_restore 14 275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 179 .loc 1 275 0 180 0028 0120 movs r0, #1 181 .LVL10: 319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 182 .loc 1 319 0 183 002a 7047 bx lr 184 .cfi_endproc 185 .LFE330: 187 .section .text.HAL_CORDIC_Configure,"ax",%progbits 188 .align 1 189 .p2align 2,,3 190 .global HAL_CORDIC_Configure 191 .syntax unified 192 .thumb 193 .thumb_func 194 .fpu fpv4-sp-d16 196 HAL_CORDIC_Configure: 197 .LFB333: 335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief DeInitialize the CORDIC MSP. 338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic CORDIC handle 339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval None 340:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 341:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** __weak void HAL_CORDIC_MspDeInit(CORDIC_HandleTypeDef *hcordic) 342:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 343:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Prevent unused argument(s) compilation warning */ 344:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** UNUSED(hcordic); 345:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 346:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* NOTE : This function should not be modified, when the callback is needed, 347:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** the HAL_CORDIC_MspDeInit can be implemented in the user file 348:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 349:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 350:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 351:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #if USE_HAL_CORDIC_REGISTER_CALLBACKS == 1 ARM GAS /tmp/cc1IKhbe.s page 11 352:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 353:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Register a CORDIC CallBack. 354:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * To be used instead of the weak predefined callback. 355:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 356:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module 357:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param CallbackID ID of the callback to be registered 358:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * This parameter can be one of the following values: 359:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @arg @ref HAL_CORDIC_ERROR_CB_ID error Callback ID 360:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @arg @ref HAL_CORDIC_CALCULATE_CPLT_CB_ID calculate complete Callback ID 361:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @arg @ref HAL_CORDIC_MSPINIT_CB_ID MspInit callback ID 362:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @arg @ref HAL_CORDIC_MSPDEINIT_CB_ID MspDeInit callback ID 363:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param pCallback pointer to the Callback function 364:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval HAL status 365:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 366:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef HAL_CORDIC_RegisterCallback(CORDIC_HandleTypeDef *hcordic, HAL_CORDIC_CallbackIDT 367:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** void (* pCallback)(CORDIC_HandleTypeDef *_hcordic)) 368:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 369:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef status = HAL_OK; 370:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 371:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (pCallback == NULL) 372:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 373:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 374:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_INVALID_CALLBACK; 375:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 376:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 377:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 378:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 379:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 380:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->State == HAL_CORDIC_STATE_READY) 381:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 382:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** switch (CallbackID) 383:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 384:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** case HAL_CORDIC_ERROR_CB_ID : 385:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCallback = pCallback; 386:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 387:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 388:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** case HAL_CORDIC_CALCULATE_CPLT_CB_ID : 389:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->CalculateCpltCallback = pCallback; 390:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 391:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 392:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** case HAL_CORDIC_MSPINIT_CB_ID : 393:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->MspInitCallback = pCallback; 394:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 395:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 396:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** case HAL_CORDIC_MSPDEINIT_CB_ID : 397:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->MspDeInitCallback = pCallback; 398:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 399:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 400:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** default : 401:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 402:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_INVALID_CALLBACK; 403:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 404:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 405:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** status = HAL_ERROR; 406:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 407:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 408:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } ARM GAS /tmp/cc1IKhbe.s page 12 409:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** else if (hcordic->State == HAL_CORDIC_STATE_RESET) 410:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 411:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** switch (CallbackID) 412:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 413:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** case HAL_CORDIC_MSPINIT_CB_ID : 414:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->MspInitCallback = pCallback; 415:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 416:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 417:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** case HAL_CORDIC_MSPDEINIT_CB_ID : 418:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->MspDeInitCallback = pCallback; 419:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 420:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 421:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** default : 422:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 423:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_INVALID_CALLBACK; 424:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 425:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 426:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** status = HAL_ERROR; 427:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 428:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 429:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 430:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** else 431:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 432:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 433:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_INVALID_CALLBACK; 434:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 435:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 436:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** status = HAL_ERROR; 437:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 438:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 439:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return status; 440:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 441:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* USE_HAL_CORDIC_REGISTER_CALLBACKS */ 442:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 443:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #if USE_HAL_CORDIC_REGISTER_CALLBACKS == 1 444:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 445:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Unregister a CORDIC CallBack. 446:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * CORDIC callback is redirected to the weak predefined callback. 447:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 448:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module 449:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param CallbackID ID of the callback to be unregistered 450:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * This parameter can be one of the following values: 451:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @arg @ref HAL_CORDIC_ERROR_CB_ID error Callback ID 452:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @arg @ref HAL_CORDIC_CALCULATE_CPLT_CB_ID calculate complete Callback ID 453:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @arg @ref HAL_CORDIC_MSPINIT_CB_ID MspInit callback ID 454:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @arg @ref HAL_CORDIC_MSPDEINIT_CB_ID MspDeInit callback ID 455:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval HAL status 456:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 457:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef HAL_CORDIC_UnRegisterCallback(CORDIC_HandleTypeDef *hcordic, HAL_CORDIC_CallbackI 458:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 459:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef status = HAL_OK; 460:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 461:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->State == HAL_CORDIC_STATE_READY) 462:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 463:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** switch (CallbackID) 464:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 465:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** case HAL_CORDIC_ERROR_CB_ID : ARM GAS /tmp/cc1IKhbe.s page 13 466:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCallback = HAL_CORDIC_ErrorCallback; 467:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 468:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 469:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** case HAL_CORDIC_CALCULATE_CPLT_CB_ID : 470:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->CalculateCpltCallback = HAL_CORDIC_CalculateCpltCallback; 471:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 472:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 473:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** case HAL_CORDIC_MSPINIT_CB_ID : 474:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->MspInitCallback = HAL_CORDIC_MspInit; 475:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 476:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 477:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** case HAL_CORDIC_MSPDEINIT_CB_ID : 478:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->MspDeInitCallback = HAL_CORDIC_MspDeInit; 479:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 480:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 481:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** default : 482:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 483:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_INVALID_CALLBACK; 484:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 485:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 486:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** status = HAL_ERROR; 487:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 488:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 489:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 490:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** else if (hcordic->State == HAL_CORDIC_STATE_RESET) 491:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 492:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** switch (CallbackID) 493:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 494:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** case HAL_CORDIC_MSPINIT_CB_ID : 495:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->MspInitCallback = HAL_CORDIC_MspInit; 496:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 497:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 498:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** case HAL_CORDIC_MSPDEINIT_CB_ID : 499:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->MspDeInitCallback = HAL_CORDIC_MspDeInit; 500:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 501:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 502:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** default : 503:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 504:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_INVALID_CALLBACK; 505:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 506:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 507:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** status = HAL_ERROR; 508:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** break; 509:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 510:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 511:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** else 512:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 513:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 514:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_INVALID_CALLBACK; 515:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 516:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 517:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** status = HAL_ERROR; 518:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 519:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 520:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return status; 521:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 522:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* USE_HAL_CORDIC_REGISTER_CALLBACKS */ ARM GAS /tmp/cc1IKhbe.s page 14 523:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 524:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 525:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @} 526:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 527:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 528:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** @defgroup CORDIC_Exported_Functions_Group2 Peripheral Control functions 529:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Control functions. 530:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * 531:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** @verbatim 532:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ============================================================================== 533:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ##### Peripheral Control functions ##### 534:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ============================================================================== 535:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** [..] This section provides functions allowing to: 536:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) Configure the CORDIC peripheral: function, precision, scaling factor, 537:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** number of input data and output data, size of input data and output data. 538:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) Calculate output data of CORDIC processing on input date, using the 539:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** existing CORDIC configuration 540:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** [..] Four processing functions are available for calculation: 541:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) Polling mode 542:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) Polling mode, with Zero-Overhead register access 543:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) Interrupt mode 544:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) DMA mode 545:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 546:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** @endverbatim 547:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @{ 548:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 549:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 550:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 551:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Configure the CORDIC processing according to the specified 552:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** parameters in the CORDIC_ConfigTypeDef structure. 553:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 554:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module 555:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param sConfig pointer to a CORDIC_ConfigTypeDef structure that 556:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * contains the CORDIC configuration information. 557:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval HAL status 558:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 559:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef HAL_CORDIC_Configure(CORDIC_HandleTypeDef *hcordic, CORDIC_ConfigTypeDef *sConfig 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 198 .loc 1 560 0 199 .cfi_startproc 200 @ args = 0, pretend = 0, frame = 0 201 @ frame_needed = 0, uses_anonymous_args = 0 202 @ link register save eliminated. 203 .LVL11: 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef status = HAL_OK; 562:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 563:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check the parameters */ 564:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** assert_param(IS_CORDIC_FUNCTION(sConfig->Function)); 565:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** assert_param(IS_CORDIC_PRECISION(sConfig->Precision)); 566:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** assert_param(IS_CORDIC_SCALE(sConfig->Scale)); 567:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** assert_param(IS_CORDIC_NBWRITE(sConfig->NbWrite)); 568:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** assert_param(IS_CORDIC_NBREAD(sConfig->NbRead)); 569:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** assert_param(IS_CORDIC_INSIZE(sConfig->InSize)); 570:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** assert_param(IS_CORDIC_OUTSIZE(sConfig->OutSize)); 571:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 572:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check handle state is ready */ 573:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->State == HAL_CORDIC_STATE_READY) ARM GAS /tmp/cc1IKhbe.s page 15 204 .loc 1 573 0 205 0000 90F82130 ldrb r3, [r0, #33] @ zero_extendqisi2 206 0004 012B cmp r3, #1 207 0006 05D0 beq .L27 574:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 575:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Apply all configuration parameters in CORDIC control register */ 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** MODIFY_REG(hcordic->Instance->CSR, \ 577:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (CORDIC_CSR_FUNC | CORDIC_CSR_PRECISION | CORDIC_CSR_SCALE | \ 578:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_CSR_NARGS | CORDIC_CSR_NRES | CORDIC_CSR_ARGSIZE | CORDIC_CSR_RESSIZE), \ 579:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (sConfig->Function | sConfig->Precision | sConfig->Scale | \ 580:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** sConfig->NbWrite | sConfig->NbRead | sConfig->InSize | sConfig->OutSize)); 581:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 582:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** else 583:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 584:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set CORDIC error code */ 585:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_NOT_READY; 208 .loc 1 585 0 209 0008 436A ldr r3, [r0, #36] 210 000a 43F00203 orr r3, r3, #2 211 000e 4362 str r3, [r0, #36] 212 .LVL12: 586:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 587:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 588:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** status = HAL_ERROR; 213 .loc 1 588 0 214 0010 0120 movs r0, #1 215 .LVL13: 589:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 590:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 591:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ 592:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return status; 593:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 216 .loc 1 593 0 217 0012 7047 bx lr 218 .LVL14: 219 .L27: 560:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef status = HAL_OK; 220 .loc 1 560 0 221 0014 70B4 push {r4, r5, r6} 222 .LCFI4: 223 .cfi_def_cfa_offset 12 224 .cfi_offset 4, -12 225 .cfi_offset 5, -8 226 .cfi_offset 6, -4 576:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (CORDIC_CSR_FUNC | CORDIC_CSR_PRECISION | CORDIC_CSR_SCALE | \ 227 .loc 1 576 0 228 0016 0B68 ldr r3, [r1] 229 0018 8C69 ldr r4, [r1, #24] 230 001a 4A68 ldr r2, [r1, #4] 231 001c 0E69 ldr r6, [r1, #16] 232 001e 0068 ldr r0, [r0] 233 .LVL15: 234 0020 2343 orrs r3, r3, r4 235 0022 1343 orrs r3, r3, r2 236 0024 D1E90254 ldrd r5, r4, [r1, #8] 237 0028 4A69 ldr r2, [r1, #20] 238 002a 0168 ldr r1, [r0] ARM GAS /tmp/cc1IKhbe.s page 16 239 .LVL16: 240 002c 3343 orrs r3, r3, r6 241 002e 1343 orrs r3, r3, r2 242 0030 044A ldr r2, .L28 243 0032 2B43 orrs r3, r3, r5 244 0034 2343 orrs r3, r3, r4 245 0036 0A40 ands r2, r2, r1 246 0038 1343 orrs r3, r3, r2 247 003a 0360 str r3, [r0] 248 .loc 1 593 0 249 003c 70BC pop {r4, r5, r6} 250 .LCFI5: 251 .cfi_restore 6 252 .cfi_restore 5 253 .cfi_restore 4 254 .cfi_def_cfa_offset 0 561:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 255 .loc 1 561 0 256 003e 0020 movs r0, #0 257 .LVL17: 258 .loc 1 593 0 259 0040 7047 bx lr 260 .L29: 261 0042 00BF .align 2 262 .L28: 263 0044 00F887FF .word -7866368 264 .cfi_endproc 265 .LFE333: 267 .section .text.HAL_CORDIC_Calculate,"ax",%progbits 268 .align 1 269 .p2align 2,,3 270 .global HAL_CORDIC_Calculate 271 .syntax unified 272 .thumb 273 .thumb_func 274 .fpu fpv4-sp-d16 276 HAL_CORDIC_Calculate: 277 .LFB334: 594:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 595:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 596:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Carry out data of CORDIC processing in polling mode, 597:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * according to the existing CORDIC configuration. 598:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 599:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module. 600:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param pInBuff Pointer to buffer containing input data for CORDIC processing. 601:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param pOutBuff Pointer to buffer where output data of CORDIC processing will be stored. 602:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param NbCalc Number of CORDIC calculation to process. 603:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param Timeout Specify Timeout value 604:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval HAL status 605:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 606:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef HAL_CORDIC_Calculate(CORDIC_HandleTypeDef *hcordic, int32_t *pInBuff, int32_t *pO 607:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t NbCalc, uint32_t Timeout) 608:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 278 .loc 1 608 0 279 .cfi_startproc 280 @ args = 4, pretend = 0, frame = 8 281 @ frame_needed = 0, uses_anonymous_args = 0 ARM GAS /tmp/cc1IKhbe.s page 17 282 .LVL18: 283 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 284 .LCFI6: 285 .cfi_def_cfa_offset 24 286 .cfi_offset 4, -24 287 .cfi_offset 5, -20 288 .cfi_offset 6, -16 289 .cfi_offset 7, -12 290 .cfi_offset 8, -8 291 .cfi_offset 14, -4 292 0004 0446 mov r4, r0 293 .LVL19: 294 0006 82B0 sub sp, sp, #8 295 .LCFI7: 296 .cfi_def_cfa_offset 32 609:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t tickstart; 610:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t index; 611:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** int32_t *p_tmp_in_buff = pInBuff; 612:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** int32_t *p_tmp_out_buff = pOutBuff; 613:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 614:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check parameters setting */ 615:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if ((pInBuff == NULL) || (pOutBuff == NULL) || (NbCalc == 0U)) 297 .loc 1 615 0 298 0008 71B1 cbz r1, .L31 299 000a 1646 mov r6, r2 300 .loc 1 615 0 is_stmt 0 discriminator 1 301 000c 62B1 cbz r2, .L31 302 .loc 1 615 0 discriminator 2 303 000e 5BB1 cbz r3, .L31 616:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 617:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_PARAM; 619:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 620:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 622:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 623:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 624:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check handle state is ready */ 625:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->State == HAL_CORDIC_STATE_READY) 304 .loc 1 625 0 is_stmt 1 305 0010 90F82120 ldrb r2, [r0, #33] @ zero_extendqisi2 306 .LVL20: 307 0014 012A cmp r2, #1 308 0016 0FD0 beq .L65 626:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 627:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Reset CORDIC error code */ 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode = HAL_CORDIC_ERROR_NONE; 629:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 630:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC state */ 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_BUSY; 632:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 633:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Get tick */ 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** tickstart = HAL_GetTick(); 635:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 636:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Write of input data in Write Data register, and increment input buffer pointer */ 637:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_WriteInDataIncrementPtr(hcordic, &p_tmp_in_buff); 638:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ARM GAS /tmp/cc1IKhbe.s page 18 639:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Calculation is started. 640:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** Provide next set of input data, until number of calculation is achieved */ 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** for (index = (NbCalc - 1U); index > 0U; index--) 642:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 643:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Write of input data in Write Data register, and increment input buffer pointer */ 644:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_WriteInDataIncrementPtr(hcordic, &p_tmp_in_buff); 645:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 646:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Wait for RRDY flag to be raised */ 647:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** do 648:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 649:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check for the Timeout */ 650:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (Timeout != HAL_MAX_DELAY) 651:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if ((HAL_GetTick() - tickstart) > Timeout) 653:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 654:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set CORDIC error code */ 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode = HAL_CORDIC_ERROR_TIMEOUT; 656:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 657:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC state */ 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_READY; 659:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 660:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 662:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 663:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } while (HAL_IS_BIT_CLR(hcordic->Instance->CSR, CORDIC_CSR_RRDY)); 665:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 666:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Read output data from Read Data register, and increment output buffer pointer */ 667:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_ReadOutDataIncrementPtr(hcordic, &p_tmp_out_buff); 668:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 669:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 670:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Read output data from Read Data register, and increment output buffer pointer */ 671:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_ReadOutDataIncrementPtr(hcordic, &p_tmp_out_buff); 672:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 673:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC state */ 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_READY; 675:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 676:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_OK; 678:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 679:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** else 680:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 681:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set CORDIC error code */ 682:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_NOT_READY; 309 .loc 1 682 0 310 0018 436A ldr r3, [r0, #36] 311 .LVL21: 312 001a 43F00203 orr r3, r3, #2 313 001e 4362 str r3, [r0, #36] 314 .LVL22: 683:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 684:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ 685:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 315 .loc 1 685 0 316 0020 0120 movs r0, #1 317 .LVL23: 686:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } ARM GAS /tmp/cc1IKhbe.s page 19 687:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 318 .loc 1 687 0 319 0022 02B0 add sp, sp, #8 320 .LCFI8: 321 .cfi_remember_state 322 .cfi_def_cfa_offset 24 323 @ sp needed 324 0024 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 325 .LVL24: 326 .L31: 327 .LCFI9: 328 .cfi_restore_state 618:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 329 .loc 1 618 0 330 0028 636A ldr r3, [r4, #36] 331 .LVL25: 332 002a 43F00103 orr r3, r3, #1 333 002e 6362 str r3, [r4, #36] 334 .LVL26: 621:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 335 .loc 1 621 0 336 0030 0120 movs r0, #1 337 .LVL27: 338 .L33: 339 .loc 1 687 0 340 0032 02B0 add sp, sp, #8 341 .LCFI10: 342 .cfi_remember_state 343 .cfi_def_cfa_offset 24 344 @ sp needed 345 0034 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 346 .LVL28: 347 .L65: 348 .LCFI11: 349 .cfi_restore_state 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 350 .loc 1 631 0 351 0038 0222 movs r2, #2 628:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 352 .loc 1 628 0 353 003a 0020 movs r0, #0 354 .LVL29: 355 003c 6062 str r0, [r4, #36] 631:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 356 .loc 1 631 0 357 003e 84F82120 strb r2, [r4, #33] 358 0042 CDE90013 strd r1, r3, [sp] 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 359 .loc 1 634 0 360 0046 FFF7FEFF bl HAL_GetTick 361 .LVL30: 362 .LBB22: 363 .LBB23: 688:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 689:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 690:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Carry out data of CORDIC processing in Zero-Overhead mode (output data being read 691:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * soon as input data are written), according to the existing CORDIC configuration. ARM GAS /tmp/cc1IKhbe.s page 20 692:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 693:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module. 694:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param pInBuff Pointer to buffer containing input data for CORDIC processing. 695:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param pOutBuff Pointer to buffer where output data of CORDIC processing will be stored. 696:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param NbCalc Number of CORDIC calculation to process. 697:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param Timeout Specify Timeout value 698:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval HAL status 699:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 700:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef HAL_CORDIC_CalculateZO(CORDIC_HandleTypeDef *hcordic, int32_t *pInBuff, int32_t * 701:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t NbCalc, uint32_t Timeout) 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 703:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t tickstart; 704:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t index; 705:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** int32_t *p_tmp_in_buff = pInBuff; 706:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** int32_t *p_tmp_out_buff = pOutBuff; 707:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 708:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check parameters setting */ 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if ((pInBuff == NULL) || (pOutBuff == NULL) || (NbCalc == 0U)) 710:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 711:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_PARAM; 713:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 714:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 716:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 717:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 718:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check handle state is ready */ 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->State == HAL_CORDIC_STATE_READY) 720:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 721:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Reset CORDIC error code */ 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode = HAL_CORDIC_ERROR_NONE; 723:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 724:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC state */ 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_BUSY; 726:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 727:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Get tick */ 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** tickstart = HAL_GetTick(); 729:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 730:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Write of input data in Write Data register, and increment input buffer pointer */ 731:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_WriteInDataIncrementPtr(hcordic, &p_tmp_in_buff); 732:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 733:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Calculation is started. 734:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** Provide next set of input data, until number of calculation is achieved */ 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** for (index = (NbCalc - 1U); index > 0U; index--) 736:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 737:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Write of input data in Write Data register, and increment input buffer pointer */ 738:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_WriteInDataIncrementPtr(hcordic, &p_tmp_in_buff); 739:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 740:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Read output data from Read Data register, and increment output buffer pointer 741:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** The reading is performed in Zero-Overhead mode: 742:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** reading is ordered immediately without waiting result ready flag */ 743:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_ReadOutDataIncrementPtr(hcordic, &p_tmp_out_buff); 744:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 745:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check for the Timeout */ 746:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (Timeout != HAL_MAX_DELAY) 747:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if ((HAL_GetTick() - tickstart) > Timeout) ARM GAS /tmp/cc1IKhbe.s page 21 749:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 750:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set CORDIC error code */ 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode = HAL_CORDIC_ERROR_TIMEOUT; 752:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 753:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC state */ 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_READY; 755:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 756:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 758:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 759:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 760:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 761:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 762:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Read output data from Read Data register, and increment output buffer pointer 763:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** The reading is performed in Zero-Overhead mode: 764:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** reading is ordered immediately without waiting result ready flag */ 765:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_ReadOutDataIncrementPtr(hcordic, &p_tmp_out_buff); 766:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 767:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC state */ 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_READY; 769:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 770:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_OK; 772:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 773:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** else 774:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 775:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set CORDIC error code */ 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_NOT_READY; 777:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 778:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 780:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 782:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 783:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 784:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Carry out data of CORDIC processing in interrupt mode, 785:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * according to the existing CORDIC configuration. 786:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 787:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module. 788:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param pInBuff Pointer to buffer containing input data for CORDIC processing. 789:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param pOutBuff Pointer to buffer where output data of CORDIC processing will be stored. 790:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param NbCalc Number of CORDIC calculation to process. 791:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval HAL status 792:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 793:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef HAL_CORDIC_Calculate_IT(CORDIC_HandleTypeDef *hcordic, int32_t *pInBuff, int32_t 794:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t NbCalc) 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 796:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** int32_t *tmp_pInBuff = pInBuff; 797:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 798:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check parameters setting */ 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if ((pInBuff == NULL) || (pOutBuff == NULL) || (NbCalc == 0U)) 800:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 801:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_PARAM; 803:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 804:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; ARM GAS /tmp/cc1IKhbe.s page 22 806:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 807:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 808:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check handle state is ready */ 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->State == HAL_CORDIC_STATE_READY) 810:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 811:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Reset CORDIC error code */ 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode = HAL_CORDIC_ERROR_NONE; 813:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 814:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC state */ 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_BUSY; 816:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 817:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Store the buffers addresses and number of calculations in handle, 818:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** provisioning initial write of input data that will be done */ 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (HAL_IS_BIT_SET(hcordic->Instance->CSR, CORDIC_CSR_NARGS)) 820:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 821:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Two writes of input data are expected */ 822:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** tmp_pInBuff++; 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** tmp_pInBuff++; 824:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 825:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** else 826:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 827:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* One write of input data is expected */ 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** tmp_pInBuff++; 829:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->pInBuff = tmp_pInBuff; 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->pOutBuff = pOutBuff; 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->NbCalcToOrder = NbCalc - 1U; 833:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->NbCalcToGet = NbCalc; 834:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 835:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Enable Result Ready Interrupt */ 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** __HAL_CORDIC_ENABLE_IT(hcordic, CORDIC_IT_IEN); 837:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 838:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set back pointer to start of input data buffer */ 839:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** tmp_pInBuff = pInBuff; 840:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 841:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Initiate the processing by providing input data 842:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** in the Write Data register */ 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** WRITE_REG(hcordic->Instance->WDATA, (uint32_t)*tmp_pInBuff); 844:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 845:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if second write of input data is expected */ 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (HAL_IS_BIT_SET(hcordic->Instance->CSR, CORDIC_CSR_NARGS)) 847:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 848:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Increment pointer to input data */ 849:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** tmp_pInBuff++; 850:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 851:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Perform second write of input data */ 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** WRITE_REG(hcordic->Instance->WDATA, (uint32_t)*tmp_pInBuff); 853:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 854:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 855:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_OK; 857:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 858:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** else 859:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 860:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set CORDIC error code */ 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_NOT_READY; 862:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ARM GAS /tmp/cc1IKhbe.s page 23 863:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 865:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 867:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 868:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 869:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Carry out input and/or output data of CORDIC processing in DMA mode, 870:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * according to the existing CORDIC configuration. 871:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 872:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module. 873:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param pInBuff Pointer to buffer containing input data for CORDIC processing. 874:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param pOutBuff Pointer to buffer where output data of CORDIC processing will be stored. 875:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param NbCalc Number of CORDIC calculation to process. 876:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param DMADirection Direction of DMA transfers. 877:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * This parameter can be one of the following values: 878:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @arg @ref CORDIC_DMA_Direction CORDIC DMA direction 879:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @note pInBuff or pOutBuff is unused in case of unique DMADirection transfer, and can 880:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * be set to NULL value in this case. 881:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @note pInBuff and pOutBuff buffers must be 32-bit aligned to ensure a correct 882:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * DMA transfer to and from the Peripheral. 883:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval HAL status 884:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 885:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_StatusTypeDef HAL_CORDIC_Calculate_DMA(CORDIC_HandleTypeDef *hcordic, int32_t *pInBuff, int32_t 886:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t NbCalc, uint32_t DMADirection) 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 888:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t sizeinbuff; 889:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t sizeoutbuff; 890:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t inputaddr; 891:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t outputaddr; 892:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 893:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check the parameters */ 894:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** assert_param(IS_CORDIC_DMA_DIRECTION(DMADirection)); 895:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 896:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check parameters setting */ 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (NbCalc == 0U) 898:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 899:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 900:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_PARAM; 901:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 902:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 903:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 904:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 905:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 906:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if CORDIC DMA direction "Out" is requested */ 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if ((DMADirection == CORDIC_DMA_DIR_OUT) || (DMADirection == CORDIC_DMA_DIR_IN_OUT)) 908:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 909:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check parameters setting */ 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (pOutBuff == NULL) 911:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 912:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 913:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_PARAM; 914:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 915:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 916:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 917:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 918:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 919:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ARM GAS /tmp/cc1IKhbe.s page 24 920:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if CORDIC DMA direction "In" is requested */ 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if ((DMADirection == CORDIC_DMA_DIR_IN) || (DMADirection == CORDIC_DMA_DIR_IN_OUT)) 922:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 923:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check parameters setting */ 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (pInBuff == NULL) 925:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 926:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_PARAM; 928:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 929:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 931:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 932:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 933:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->State == HAL_CORDIC_STATE_READY) 935:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 936:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Reset CORDIC error code */ 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode = HAL_CORDIC_ERROR_NONE; 938:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 939:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC state */ 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_BUSY; 941:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 942:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Get DMA direction */ 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->DMADirection = DMADirection; 944:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 945:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if CORDIC DMA direction "Out" is requested */ 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if ((DMADirection == CORDIC_DMA_DIR_OUT) || (DMADirection == CORDIC_DMA_DIR_IN_OUT)) 947:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 948:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set the CORDIC DMA transfer complete callback */ 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->hdmaOut->XferCpltCallback = CORDIC_DMAOutCplt; 950:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set the DMA error callback */ 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->hdmaOut->XferErrorCallback = CORDIC_DMAError; 952:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 953:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check number of output data at each calculation, 954:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** to retrieve the size of output data buffer */ 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (HAL_IS_BIT_SET(hcordic->Instance->CSR, CORDIC_CSR_NRES)) 956:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** sizeoutbuff = 2U * NbCalc; 958:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 959:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** else 960:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 961:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** sizeoutbuff = NbCalc; 962:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 963:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 964:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** outputaddr = (uint32_t)pOutBuff; 965:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 966:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Enable the DMA stream managing CORDIC output data read */ 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (HAL_DMA_Start_IT(hcordic->hdmaOut, (uint32_t)&hcordic->Instance->RDATA, outputaddr, sizeo 968:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 969:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 970:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_DMA; 971:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 972:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 973:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 974:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 975:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 976:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Enable output data Read DMA requests */ ARM GAS /tmp/cc1IKhbe.s page 25 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** SET_BIT(hcordic->Instance->CSR, CORDIC_DMA_REN); 978:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 979:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 980:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if CORDIC DMA direction "In" is requested */ 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if ((DMADirection == CORDIC_DMA_DIR_IN) || (DMADirection == CORDIC_DMA_DIR_IN_OUT)) 982:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 983:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set the CORDIC DMA transfer complete callback */ 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->hdmaIn->XferCpltCallback = CORDIC_DMAInCplt; 985:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set the DMA error callback */ 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->hdmaIn->XferErrorCallback = CORDIC_DMAError; 987:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 988:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check number of input data expected for each calculation, 989:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** to retrieve the size of input data buffer */ 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (HAL_IS_BIT_SET(hcordic->Instance->CSR, CORDIC_CSR_NARGS)) 991:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** sizeinbuff = 2U * NbCalc; 993:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 994:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** else 995:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 996:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** sizeinbuff = NbCalc; 997:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 998:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 999:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** inputaddr = (uint32_t)pInBuff; 1000:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1001:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Enable the DMA stream managing CORDIC input data write */ 1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (HAL_DMA_Start_IT(hcordic->hdmaIn, inputaddr, (uint32_t)&hcordic->Instance->WDATA, sizeinb 1003:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1004:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Update the error code */ 1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_DMA; 1006:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1007:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return error status */ 1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 1009:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1010:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1011:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Enable input data Write DMA request */ 1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** SET_BIT(hcordic->Instance->CSR, CORDIC_DMA_WEN); 1013:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1014:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1015:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ 1016:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_OK; 1017:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1018:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** else 1019:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1020:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set CORDIC error code */ 1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_NOT_READY; 1022:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1023:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return function status */ 1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return HAL_ERROR; 1025:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1027:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1028:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1029:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @} 1030:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1031:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1032:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** @defgroup CORDIC_Exported_Functions_Group3 Callback functions 1033:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Callback functions. ARM GAS /tmp/cc1IKhbe.s page 26 1034:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * 1035:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** @verbatim 1036:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ============================================================================== 1037:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ##### Callback functions ##### 1038:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ============================================================================== 1039:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** [..] This section provides Interruption and DMA callback functions: 1040:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) DMA or Interrupt calculate complete 1041:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (+) DMA or Interrupt error 1042:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1043:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** @endverbatim 1044:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @{ 1045:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1046:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1047:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1048:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief CORDIC error callback. 1049:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 1050:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module 1051:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval None 1052:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1053:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** __weak void HAL_CORDIC_ErrorCallback(CORDIC_HandleTypeDef *hcordic) 1054:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1055:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Prevent unused argument(s) compilation warning */ 1056:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** UNUSED(hcordic); 1057:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1058:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* NOTE : This function should not be modified; when the callback is needed, 1059:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** the HAL_CORDIC_ErrorCallback can be implemented in the user file 1060:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1061:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1062:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1063:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1064:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief CORDIC calculate complete callback. 1065:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 1066:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module 1067:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval None 1068:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1069:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** __weak void HAL_CORDIC_CalculateCpltCallback(CORDIC_HandleTypeDef *hcordic) 1070:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1071:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Prevent unused argument(s) compilation warning */ 1072:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** UNUSED(hcordic); 1073:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1074:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* NOTE : This function should not be modified; when the callback is needed, 1075:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** the HAL_CORDIC_CalculateCpltCallback can be implemented in the user file 1076:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1077:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1078:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1079:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1080:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @} 1081:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1082:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1083:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** @defgroup CORDIC_Exported_Functions_Group4 IRQ handler management 1084:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief IRQ handler. 1085:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * 1086:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** @verbatim 1087:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ============================================================================== 1088:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ##### IRQ handler management ##### 1089:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ============================================================================== 1090:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** [..] This section provides IRQ handler function. ARM GAS /tmp/cc1IKhbe.s page 27 1091:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1092:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** @endverbatim 1093:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @{ 1094:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1095:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1096:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1097:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Handle CORDIC interrupt request. 1098:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 1099:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module 1100:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval None 1101:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1102:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** void HAL_CORDIC_IRQHandler(CORDIC_HandleTypeDef *hcordic) 1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1104:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if calculation complete interrupt is enabled and if result ready 1105:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** flag is raised */ 1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (__HAL_CORDIC_GET_IT_SOURCE(hcordic, CORDIC_IT_IEN) != 0U) 1107:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (__HAL_CORDIC_GET_FLAG(hcordic, CORDIC_FLAG_RRDY) != 0U) 1109:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1110:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Decrement number of calculations to get */ 1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->NbCalcToGet--; 1112:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1113:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Read output data from Read Data register, and increment output buffer pointer */ 1114:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_ReadOutDataIncrementPtr(hcordic, &(hcordic->pOutBuff)); 1115:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1116:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if calculations are still to be ordered */ 1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->NbCalcToOrder > 0U) 1118:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1119:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Decrement number of calculations to order */ 1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->NbCalcToOrder--; 1121:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1122:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Continue the processing by providing another write of input data 1123:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** in the Write Data register, and increment input buffer pointer */ 1124:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_WriteInDataIncrementPtr(hcordic, &(hcordic->pInBuff)); 1125:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1126:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1127:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if all calculations results are got */ 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->NbCalcToGet == 0U) 1129:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1130:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Disable Result Ready Interrupt */ 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** __HAL_CORDIC_DISABLE_IT(hcordic, CORDIC_IT_IEN); 1132:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1133:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC state */ 1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_READY; 1135:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1136:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Call calculation complete callback */ 1137:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #if USE_HAL_CORDIC_REGISTER_CALLBACKS == 1 1138:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /*Call registered callback*/ 1139:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->CalculateCpltCallback(hcordic); 1140:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #else 1141:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /*Call legacy weak (surcharged) callback*/ 1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_CORDIC_CalculateCpltCallback(hcordic); 1143:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* USE_HAL_CORDIC_REGISTER_CALLBACKS */ 1144:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1145:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1146:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } ARM GAS /tmp/cc1IKhbe.s page 28 1148:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1149:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1150:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @} 1151:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1152:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1153:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** @defgroup CORDIC_Exported_Functions_Group5 Peripheral State functions 1154:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Peripheral State functions. 1155:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * 1156:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** @verbatim 1157:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ============================================================================== 1158:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ##### Peripheral State functions ##### 1159:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** ============================================================================== 1160:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** [..] 1161:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** This subsection permits to get in run-time the status of the peripheral. 1162:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1163:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** @endverbatim 1164:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @{ 1165:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1166:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1167:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1168:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Return the CORDIC handle state. 1169:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 1170:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module 1171:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval HAL state 1172:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1173:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_CORDIC_StateTypeDef HAL_CORDIC_GetState(CORDIC_HandleTypeDef *hcordic) 1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1175:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return CORDIC handle state */ 1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return hcordic->State; 1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1178:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1179:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1180:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Return the CORDIC peripheral error. 1181:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 1182:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module 1183:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @note The returned error is a bit-map combination of possible errors 1184:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval Error bit-map 1185:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1186:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t HAL_CORDIC_GetError(CORDIC_HandleTypeDef *hcordic) 1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1188:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return CORDIC error code */ 1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** return hcordic->ErrorCode; 1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1191:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1192:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1193:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @} 1194:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1195:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1196:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1197:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @} 1198:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1199:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1200:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** @addtogroup CORDIC_Private_Functions 1201:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @{ 1202:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1203:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1204:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** ARM GAS /tmp/cc1IKhbe.s page 29 1205:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Write input data for CORDIC processing, and increment input buffer pointer. 1206:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 1207:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module. 1208:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param ppInBuff Pointer to pointer to input buffer. 1209:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval none 1210:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1211:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** static void CORDIC_WriteInDataIncrementPtr(CORDIC_HandleTypeDef *hcordic, int32_t **ppInBuff) 1212:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1213:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* First write of input data in the Write Data register */ 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** WRITE_REG(hcordic->Instance->WDATA, (uint32_t) **ppInBuff); 364 .loc 1 1214 0 365 004a 0099 ldr r1, [sp] 1215:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1216:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Increment input data pointer */ 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (*ppInBuff)++; 1218:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1219:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if second write of input data is expected */ 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (HAL_IS_BIT_SET(hcordic->Instance->CSR, CORDIC_CSR_NARGS)) 366 .loc 1 1220 0 367 004c 019B ldr r3, [sp, #4] 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 368 .loc 1 1214 0 369 004e 0A68 ldr r2, [r1] 370 .LBE23: 371 .LBE22: 634:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 372 .loc 1 634 0 373 0050 8046 mov r8, r0 374 .LVL31: 375 .LBB25: 376 .LBB24: 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 377 .loc 1 1214 0 378 0052 2068 ldr r0, [r4] 379 .LVL32: 380 0054 4260 str r2, [r0, #4] 381 .LVL33: 382 .loc 1 1220 0 383 0056 0268 ldr r2, [r0] 384 0058 12F4801F tst r2, #1048576 1221:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1222:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Second write of input data in the Write Data register */ 1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** WRITE_REG(hcordic->Instance->WDATA, (uint32_t) **ppInBuff); 385 .loc 1 1223 0 386 005c 1BBF ittet ne 387 005e 4A68 ldrne r2, [r1, #4] 388 0060 4260 strne r2, [r0, #4] 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 389 .loc 1 1217 0 390 0062 0D1D addeq r5, r1, #4 1224:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1225:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Increment input data pointer */ 1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (*ppInBuff)++; 391 .loc 1 1226 0 392 0064 01F10805 addne r5, r1, #8 393 .LVL34: 394 .LBE24: ARM GAS /tmp/cc1IKhbe.s page 30 395 .LBE25: 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 396 .loc 1 641 0 397 0068 5F1E subs r7, r3, #1 398 .LVL35: 399 006a 1AD0 beq .L37 400 .LVL36: 401 .L46: 402 .LBB26: 403 .LBB27: 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 404 .loc 1 1214 0 405 006c 2B68 ldr r3, [r5] 406 006e 4360 str r3, [r0, #4] 407 .LVL37: 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 408 .loc 1 1220 0 409 0070 0368 ldr r3, [r0] 410 0072 D902 lsls r1, r3, #11 1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 411 .loc 1 1223 0 412 0074 44BF itt mi 413 0076 6B68 ldrmi r3, [r5, #4] 414 0078 4360 strmi r3, [r0, #4] 415 007a 089B ldr r3, [sp, #32] 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 416 .loc 1 1217 0 417 007c 54BF ite pl 418 007e 0435 addpl r5, r5, #4 419 .LVL38: 420 .loc 1 1226 0 421 0080 0835 addmi r5, r5, #8 422 .LVL39: 423 0082 0133 adds r3, r3, #1 424 0084 1DD1 bne .L40 425 .LVL40: 426 .L41: 427 .LBE27: 428 .LBE26: 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 429 .loc 1 664 0 430 0086 0368 ldr r3, [r0] 431 0088 002B cmp r3, #0 432 008a FCDA bge .L41 433 .L42: 434 .LVL41: 435 .LBB28: 436 .LBB29: 1227:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1228:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1229:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1230:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1231:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief Read output data of CORDIC processing, and increment output buffer pointer. 1232:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hcordic pointer to a CORDIC_HandleTypeDef structure that contains 1233:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * the configuration information for CORDIC module. 1234:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param ppOutBuff Pointer to pointer to output buffer. 1235:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval none ARM GAS /tmp/cc1IKhbe.s page 31 1236:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1237:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** static void CORDIC_ReadOutDataIncrementPtr(CORDIC_HandleTypeDef *hcordic, int32_t **ppOutBuff) 1238:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1239:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* First read of output data from the Read Data register */ 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** **ppOutBuff = (int32_t)READ_REG(hcordic->Instance->RDATA); 437 .loc 1 1240 0 438 008c 8368 ldr r3, [r0, #8] 439 008e 3360 str r3, [r6] 440 .LVL42: 1241:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1242:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Increment output data pointer */ 1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (*ppOutBuff)++; 1244:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1245:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if second read of output data is expected */ 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (HAL_IS_BIT_SET(hcordic->Instance->CSR, CORDIC_CSR_NRES)) 441 .loc 1 1246 0 442 0090 0368 ldr r3, [r0] 443 0092 1A03 lsls r2, r3, #12 1247:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1248:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Second read of output data from the Read Data register */ 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** **ppOutBuff = (int32_t)READ_REG(hcordic->Instance->RDATA); 444 .loc 1 1249 0 445 0094 45BF ittet mi 446 0096 8368 ldrmi r3, [r0, #8] 447 0098 7360 strmi r3, [r6, #4] 1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 448 .loc 1 1243 0 449 009a 0436 addpl r6, r6, #4 450 .LVL43: 1250:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1251:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Increment output data pointer */ 1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** (*ppOutBuff)++; 451 .loc 1 1252 0 452 009c 0836 addmi r6, r6, #8 453 .LVL44: 454 .LBE29: 455 .LBE28: 641:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 456 .loc 1 641 0 457 009e 013F subs r7, r7, #1 458 .LVL45: 459 00a0 E4D1 bne .L46 460 .LVL46: 461 .L37: 462 .LBB30: 463 .LBB31: 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 464 .loc 1 1240 0 465 00a2 8368 ldr r3, [r0, #8] 466 00a4 3360 str r3, [r6] 467 .LVL47: 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 468 .loc 1 1246 0 469 00a6 0368 ldr r3, [r0] 470 00a8 1B03 lsls r3, r3, #12 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 471 .loc 1 1249 0 ARM GAS /tmp/cc1IKhbe.s page 32 472 00aa 44BF itt mi 473 00ac 8368 ldrmi r3, [r0, #8] 474 00ae 7360 strmi r3, [r6, #4] 475 .LVL48: 476 .LBE31: 477 .LBE30: 674:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 478 .loc 1 674 0 479 00b0 0123 movs r3, #1 480 00b2 84F82130 strb r3, [r4, #33] 677:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 481 .loc 1 677 0 482 00b6 0020 movs r0, #0 483 00b8 BBE7 b .L33 484 .LVL49: 485 .L66: 486 00ba 2068 ldr r0, [r4] 664:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 487 .loc 1 664 0 488 00bc 0368 ldr r3, [r0] 489 00be 002B cmp r3, #0 490 00c0 E4DB blt .L42 491 .L40: 652:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 492 .loc 1 652 0 493 00c2 FFF7FEFF bl HAL_GetTick 494 .LVL50: 495 00c6 089B ldr r3, [sp, #32] 496 00c8 A0EB0800 sub r0, r0, r8 497 00cc 9842 cmp r0, r3 498 00ce F4D9 bls .L66 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 499 .loc 1 658 0 500 00d0 0123 movs r3, #1 655:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 501 .loc 1 655 0 502 00d2 0422 movs r2, #4 503 00d4 6262 str r2, [r4, #36] 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 504 .loc 1 661 0 505 00d6 1846 mov r0, r3 658:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 506 .loc 1 658 0 507 00d8 84F82130 strb r3, [r4, #33] 661:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 508 .loc 1 661 0 509 00dc A9E7 b .L33 510 .cfi_endproc 511 .LFE334: 513 00de 00BF .section .text.HAL_CORDIC_CalculateZO,"ax",%progbits 514 .align 1 515 .p2align 2,,3 516 .global HAL_CORDIC_CalculateZO 517 .syntax unified 518 .thumb 519 .thumb_func 520 .fpu fpv4-sp-d16 ARM GAS /tmp/cc1IKhbe.s page 33 522 HAL_CORDIC_CalculateZO: 523 .LFB335: 702:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t tickstart; 524 .loc 1 702 0 525 .cfi_startproc 526 @ args = 4, pretend = 0, frame = 8 527 @ frame_needed = 0, uses_anonymous_args = 0 528 .LVL51: 529 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 530 .LCFI12: 531 .cfi_def_cfa_offset 24 532 .cfi_offset 4, -24 533 .cfi_offset 5, -20 534 .cfi_offset 6, -16 535 .cfi_offset 7, -12 536 .cfi_offset 8, -8 537 .cfi_offset 14, -4 538 0004 0546 mov r5, r0 539 .LVL52: 540 0006 82B0 sub sp, sp, #8 541 .LCFI13: 542 .cfi_def_cfa_offset 32 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 543 .loc 1 709 0 544 0008 71B1 cbz r1, .L68 545 000a 1646 mov r6, r2 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 546 .loc 1 709 0 is_stmt 0 discriminator 1 547 000c 62B1 cbz r2, .L68 709:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 548 .loc 1 709 0 discriminator 2 549 000e 5BB1 cbz r3, .L68 719:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 550 .loc 1 719 0 is_stmt 1 551 0010 90F82120 ldrb r2, [r0, #33] @ zero_extendqisi2 552 .LVL53: 553 0014 012A cmp r2, #1 554 0016 0FD0 beq .L104 776:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 555 .loc 1 776 0 556 0018 436A ldr r3, [r0, #36] 557 .LVL54: 558 001a 43F00203 orr r3, r3, #2 559 001e 4362 str r3, [r0, #36] 560 .LVL55: 779:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 561 .loc 1 779 0 562 0020 0120 movs r0, #1 563 .LVL56: 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 564 .loc 1 781 0 565 0022 02B0 add sp, sp, #8 566 .LCFI14: 567 .cfi_remember_state 568 .cfi_def_cfa_offset 24 569 @ sp needed 570 0024 BDE8F081 pop {r4, r5, r6, r7, r8, pc} ARM GAS /tmp/cc1IKhbe.s page 34 571 .LVL57: 572 .L68: 573 .LCFI15: 574 .cfi_restore_state 712:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 575 .loc 1 712 0 576 0028 6B6A ldr r3, [r5, #36] 577 .LVL58: 578 002a 43F00103 orr r3, r3, #1 579 002e 6B62 str r3, [r5, #36] 580 .LVL59: 715:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 581 .loc 1 715 0 582 0030 0120 movs r0, #1 583 .LVL60: 584 .L70: 781:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 585 .loc 1 781 0 586 0032 02B0 add sp, sp, #8 587 .LCFI16: 588 .cfi_remember_state 589 .cfi_def_cfa_offset 24 590 @ sp needed 591 0034 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 592 .LVL61: 593 .L104: 594 .LCFI17: 595 .cfi_restore_state 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 596 .loc 1 725 0 597 0038 0222 movs r2, #2 722:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 598 .loc 1 722 0 599 003a 0020 movs r0, #0 600 .LVL62: 601 003c 6862 str r0, [r5, #36] 725:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 602 .loc 1 725 0 603 003e 85F82120 strb r2, [r5, #33] 604 0042 CDE90013 strd r1, r3, [sp] 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 605 .loc 1 728 0 606 0046 FFF7FEFF bl HAL_GetTick 607 .LVL63: 608 .LBB32: 609 .LBB33: 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 610 .loc 1 1214 0 611 004a 0099 ldr r1, [sp] 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 612 .loc 1 1220 0 613 004c 019B ldr r3, [sp, #4] 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 614 .loc 1 1214 0 615 004e 0A68 ldr r2, [r1] 616 .LBE33: 617 .LBE32: ARM GAS /tmp/cc1IKhbe.s page 35 728:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 618 .loc 1 728 0 619 0050 8046 mov r8, r0 620 .LVL64: 621 .LBB35: 622 .LBB34: 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 623 .loc 1 1214 0 624 0052 2868 ldr r0, [r5] 625 .LVL65: 626 0054 4260 str r2, [r0, #4] 627 .LVL66: 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 628 .loc 1 1220 0 629 0056 0268 ldr r2, [r0] 630 0058 12F4801F tst r2, #1048576 1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 631 .loc 1 1223 0 632 005c 1BBF ittet ne 633 005e 4A68 ldrne r2, [r1, #4] 634 0060 4260 strne r2, [r0, #4] 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 635 .loc 1 1217 0 636 0062 0C1D addeq r4, r1, #4 1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 637 .loc 1 1226 0 638 0064 01F10804 addne r4, r1, #8 639 .LVL67: 640 .LBE34: 641 .LBE35: 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 642 .loc 1 735 0 643 0068 5F1E subs r7, r3, #1 644 .LVL68: 645 006a 17D0 beq .L74 646 006c 089B ldr r3, [sp, #32] 647 006e 0133 adds r3, r3, #1 648 0070 23D1 bne .L75 649 .LVL69: 650 .L80: 651 .LBB36: 652 .LBB37: 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 653 .loc 1 1214 0 654 0072 2368 ldr r3, [r4] 655 0074 4360 str r3, [r0, #4] 656 .LVL70: 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 657 .loc 1 1220 0 658 0076 0368 ldr r3, [r0] 659 0078 DA02 lsls r2, r3, #11 1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 660 .loc 1 1223 0 661 007a 44BF itt mi 662 007c 6368 ldrmi r3, [r4, #4] 663 007e 4360 strmi r3, [r0, #4] 664 .LBE37: ARM GAS /tmp/cc1IKhbe.s page 36 665 .LBE36: 666 .LBB41: 667 .LBB42: 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 668 .loc 1 1240 0 669 0080 8368 ldr r3, [r0, #8] 670 0082 3360 str r3, [r6] 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 671 .loc 1 1246 0 672 0084 0368 ldr r3, [r0] 673 .LBE42: 674 .LBE41: 675 .LBB46: 676 .LBB38: 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 677 .loc 1 1217 0 678 0086 54BF ite pl 679 0088 0434 addpl r4, r4, #4 680 .LVL71: 1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 681 .loc 1 1226 0 682 008a 0834 addmi r4, r4, #8 683 .LVL72: 684 .LBE38: 685 .LBE46: 686 .LBB47: 687 .LBB43: 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 688 .loc 1 1246 0 689 008c 1B03 lsls r3, r3, #12 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 690 .loc 1 1249 0 691 008e 45BF ittet mi 692 0090 8368 ldrmi r3, [r0, #8] 693 0092 7360 strmi r3, [r6, #4] 1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 694 .loc 1 1243 0 695 0094 0436 addpl r6, r6, #4 696 .LVL73: 697 .loc 1 1252 0 698 0096 0836 addmi r6, r6, #8 699 .LVL74: 700 .LBE43: 701 .LBE47: 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 702 .loc 1 735 0 703 0098 013F subs r7, r7, #1 704 .LVL75: 705 009a EAD1 bne .L80 706 .LVL76: 707 .L74: 708 .LBB48: 709 .LBB49: 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 710 .loc 1 1240 0 711 009c 8368 ldr r3, [r0, #8] 712 009e 3360 str r3, [r6] ARM GAS /tmp/cc1IKhbe.s page 37 713 .LVL77: 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 714 .loc 1 1246 0 715 00a0 0368 ldr r3, [r0] 716 00a2 1B03 lsls r3, r3, #12 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 717 .loc 1 1249 0 718 00a4 44BF itt mi 719 00a6 8368 ldrmi r3, [r0, #8] 720 00a8 7360 strmi r3, [r6, #4] 721 .LVL78: 722 .LBE49: 723 .LBE48: 768:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 724 .loc 1 768 0 725 00aa 0123 movs r3, #1 726 00ac 85F82130 strb r3, [r5, #33] 771:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 727 .loc 1 771 0 728 00b0 0020 movs r0, #0 729 00b2 BEE7 b .L70 730 .LVL79: 731 .L105: 735:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 732 .loc 1 735 0 733 00b4 013F subs r7, r7, #1 734 .LVL80: 735 00b6 2868 ldr r0, [r5] 736 00b8 F0D0 beq .L74 737 .LVL81: 738 .L75: 739 .LBB50: 740 .LBB39: 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 741 .loc 1 1214 0 742 00ba 2368 ldr r3, [r4] 743 00bc 4360 str r3, [r0, #4] 744 .LVL82: 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 745 .loc 1 1220 0 746 00be 0368 ldr r3, [r0] 747 00c0 D902 lsls r1, r3, #11 1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 748 .loc 1 1223 0 749 00c2 44BF itt mi 750 00c4 6368 ldrmi r3, [r4, #4] 751 00c6 4360 strmi r3, [r0, #4] 752 .LBE39: 753 .LBE50: 754 .LBB51: 755 .LBB44: 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 756 .loc 1 1240 0 757 00c8 8368 ldr r3, [r0, #8] 758 00ca 3360 str r3, [r6] 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 759 .loc 1 1246 0 ARM GAS /tmp/cc1IKhbe.s page 38 760 00cc 0368 ldr r3, [r0] 761 .LBE44: 762 .LBE51: 763 .LBB52: 764 .LBB40: 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 765 .loc 1 1217 0 766 00ce 54BF ite pl 767 00d0 0434 addpl r4, r4, #4 768 .LVL83: 1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 769 .loc 1 1226 0 770 00d2 0834 addmi r4, r4, #8 771 .LVL84: 772 .LBE40: 773 .LBE52: 774 .LBB53: 775 .LBB45: 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 776 .loc 1 1246 0 777 00d4 1A03 lsls r2, r3, #12 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 778 .loc 1 1249 0 779 00d6 45BF ittet mi 780 00d8 8368 ldrmi r3, [r0, #8] 781 00da 7360 strmi r3, [r6, #4] 1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 782 .loc 1 1243 0 783 00dc 0436 addpl r6, r6, #4 784 .LVL85: 785 .loc 1 1252 0 786 00de 0836 addmi r6, r6, #8 787 .LVL86: 788 .LBE45: 789 .LBE53: 748:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 790 .loc 1 748 0 791 00e0 FFF7FEFF bl HAL_GetTick 792 .LVL87: 793 00e4 089B ldr r3, [sp, #32] 794 00e6 A0EB0800 sub r0, r0, r8 795 00ea 9842 cmp r0, r3 796 00ec E2D9 bls .L105 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 797 .loc 1 754 0 798 00ee 0123 movs r3, #1 751:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 799 .loc 1 751 0 800 00f0 0422 movs r2, #4 801 00f2 6A62 str r2, [r5, #36] 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 802 .loc 1 757 0 803 00f4 1846 mov r0, r3 754:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 804 .loc 1 754 0 805 00f6 85F82130 strb r3, [r5, #33] 757:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } ARM GAS /tmp/cc1IKhbe.s page 39 806 .loc 1 757 0 807 00fa 9AE7 b .L70 808 .cfi_endproc 809 .LFE335: 811 .section .text.HAL_CORDIC_Calculate_IT,"ax",%progbits 812 .align 1 813 .p2align 2,,3 814 .global HAL_CORDIC_Calculate_IT 815 .syntax unified 816 .thumb 817 .thumb_func 818 .fpu fpv4-sp-d16 820 HAL_CORDIC_Calculate_IT: 821 .LFB336: 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** int32_t *tmp_pInBuff = pInBuff; 822 .loc 1 795 0 823 .cfi_startproc 824 @ args = 0, pretend = 0, frame = 0 825 @ frame_needed = 0, uses_anonymous_args = 0 826 @ link register save eliminated. 827 .LVL88: 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 828 .loc 1 799 0 829 0000 69B1 cbz r1, .L107 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 830 .loc 1 799 0 is_stmt 0 discriminator 1 831 0002 62B1 cbz r2, .L107 799:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 832 .loc 1 799 0 discriminator 2 833 0004 5BB1 cbz r3, .L107 795:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** int32_t *tmp_pInBuff = pInBuff; 834 .loc 1 795 0 is_stmt 1 835 0006 70B4 push {r4, r5, r6} 836 .LCFI18: 837 .cfi_def_cfa_offset 12 838 .cfi_offset 4, -12 839 .cfi_offset 5, -8 840 .cfi_offset 6, -4 809:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 841 .loc 1 809 0 842 0008 90F82140 ldrb r4, [r0, #33] @ zero_extendqisi2 843 000c 012C cmp r4, #1 844 000e 0CD0 beq .L123 861:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 845 .loc 1 861 0 846 0010 436A ldr r3, [r0, #36] 847 .LVL89: 848 0012 43F00203 orr r3, r3, #2 849 0016 4362 str r3, [r0, #36] 864:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 850 .loc 1 864 0 851 0018 0120 movs r0, #1 852 .LVL90: 853 .L109: 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 854 .loc 1 866 0 855 001a 70BC pop {r4, r5, r6} ARM GAS /tmp/cc1IKhbe.s page 40 856 .LCFI19: 857 .cfi_restore 6 858 .cfi_restore 5 859 .cfi_restore 4 860 .cfi_def_cfa_offset 0 861 001c 7047 bx lr 862 .LVL91: 863 .L107: 802:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 864 .loc 1 802 0 865 001e 436A ldr r3, [r0, #36] 866 .LVL92: 867 0020 43F00103 orr r3, r3, #1 868 0024 4362 str r3, [r0, #36] 805:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 869 .loc 1 805 0 870 0026 0120 movs r0, #1 871 .LVL93: 866:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 872 .loc 1 866 0 873 0028 7047 bx lr 874 .LVL94: 875 .L123: 876 .LCFI20: 877 .cfi_def_cfa_offset 12 878 .cfi_offset 4, -12 879 .cfi_offset 5, -8 880 .cfi_offset 6, -4 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 881 .loc 1 812 0 882 002a 0026 movs r6, #0 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 883 .loc 1 819 0 884 002c 0468 ldr r4, [r0] 812:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 885 .loc 1 812 0 886 002e 4662 str r6, [r0, #36] 815:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 887 .loc 1 815 0 888 0030 0225 movs r5, #2 889 0032 80F82150 strb r5, [r0, #33] 819:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 890 .loc 1 819 0 891 0036 2568 ldr r5, [r4] 892 0038 ED02 lsls r5, r5, #11 893 .LVL95: 823:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 894 .loc 1 823 0 895 003a 4CBF ite mi 896 003c 01F10806 addmi r6, r1, #8 897 .LVL96: 828:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 898 .loc 1 828 0 899 0040 0E1D addpl r6, r1, #4 900 .LVL97: 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 901 .loc 1 836 0 ARM GAS /tmp/cc1IKhbe.s page 41 902 0042 2568 ldr r5, [r4] 830:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->pOutBuff = pOutBuff; 903 .loc 1 830 0 904 0044 4660 str r6, [r0, #4] 832:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->NbCalcToGet = NbCalc; 905 .loc 1 832 0 906 0046 5E1E subs r6, r3, #1 907 .LVL98: 908 0048 C0E90363 strd r6, r3, [r0, #12] 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 909 .loc 1 836 0 910 004c 45F48035 orr r5, r5, #65536 831:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->NbCalcToOrder = NbCalc - 1U; 911 .loc 1 831 0 912 0050 8260 str r2, [r0, #8] 836:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 913 .loc 1 836 0 914 0052 2560 str r5, [r4] 915 .LVL99: 843:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 916 .loc 1 843 0 917 0054 0B68 ldr r3, [r1] 918 .LVL100: 919 0056 6360 str r3, [r4, #4] 846:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 920 .loc 1 846 0 921 0058 2068 ldr r0, [r4] 922 .LVL101: 923 005a 10F48010 ands r0, r0, #1048576 924 005e DCD0 beq .L109 925 .LVL102: 852:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 926 .loc 1 852 0 927 0060 4B68 ldr r3, [r1, #4] 928 0062 6360 str r3, [r4, #4] 856:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 929 .loc 1 856 0 930 0064 0020 movs r0, #0 931 0066 D8E7 b .L109 932 .cfi_endproc 933 .LFE336: 935 .section .text.HAL_CORDIC_Calculate_DMA,"ax",%progbits 936 .align 1 937 .p2align 2,,3 938 .global HAL_CORDIC_Calculate_DMA 939 .syntax unified 940 .thumb 941 .thumb_func 942 .fpu fpv4-sp-d16 944 HAL_CORDIC_Calculate_DMA: 945 .LFB337: 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t sizeinbuff; 946 .loc 1 887 0 947 .cfi_startproc 948 @ args = 4, pretend = 0, frame = 0 949 @ frame_needed = 0, uses_anonymous_args = 0 950 .LVL103: ARM GAS /tmp/cc1IKhbe.s page 42 951 0000 2DE9F041 push {r4, r5, r6, r7, r8, lr} 952 .LCFI21: 953 .cfi_def_cfa_offset 24 954 .cfi_offset 4, -24 955 .cfi_offset 5, -20 956 .cfi_offset 6, -16 957 .cfi_offset 7, -12 958 .cfi_offset 8, -8 959 .cfi_offset 14, -4 887:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** uint32_t sizeinbuff; 960 .loc 1 887 0 961 0004 069D ldr r5, [sp, #24] 962 0006 0446 mov r4, r0 897:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 963 .loc 1 897 0 964 0008 B3B1 cbz r3, .L151 965 000a 1E46 mov r6, r3 907:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 966 .loc 1 907 0 967 000c AB1E subs r3, r5, #2 968 .LVL104: 969 000e 012B cmp r3, #1 970 0010 0F46 mov r7, r1 971 0012 0CD9 bls .L153 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 972 .loc 1 921 0 973 0014 012D cmp r5, #1 974 0016 0DD0 beq .L129 975 .L130: 934:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 976 .loc 1 934 0 977 0018 94F82110 ldrb r1, [r4, #33] @ zero_extendqisi2 978 .LVL105: 979 001c 0129 cmp r1, #1 980 001e 12D0 beq .L154 1021:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 981 .loc 1 1021 0 982 0020 636A ldr r3, [r4, #36] 983 0022 43F00203 orr r3, r3, #2 984 0026 6362 str r3, [r4, #36] 985 .LVL106: 1024:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 986 .loc 1 1024 0 987 0028 0120 movs r0, #1 988 .LVL107: 1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 989 .loc 1 1026 0 990 002a BDE8F081 pop {r4, r5, r6, r7, r8, pc} 991 .LVL108: 992 .L153: 910:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 993 .loc 1 910 0 994 002e 1AB1 cbz r2, .L151 921:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 995 .loc 1 921 0 discriminator 1 996 0030 032D cmp r5, #3 997 0032 F1D1 bne .L130 ARM GAS /tmp/cc1IKhbe.s page 43 998 .L129: 924:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 999 .loc 1 924 0 1000 0034 002F cmp r7, #0 1001 0036 EFD1 bne .L130 1002 .LVL109: 1003 .L151: 927:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1004 .loc 1 927 0 1005 0038 636A ldr r3, [r4, #36] 1006 003a 43F00103 orr r3, r3, #1 1007 003e 6362 str r3, [r4, #36] 1008 .LVL110: 930:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1009 .loc 1 930 0 1010 0040 0120 movs r0, #1 1011 .LVL111: 1012 .L126: 1026:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1013 .loc 1 1026 0 1014 0042 BDE8F081 pop {r4, r5, r6, r7, r8, pc} 1015 .LVL112: 1016 .L154: 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1017 .loc 1 937 0 1018 0046 0020 movs r0, #0 1019 .LVL113: 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1020 .loc 1 940 0 1021 0048 0221 movs r1, #2 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1022 .loc 1 946 0 1023 004a 012B cmp r3, #1 937:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1024 .loc 1 937 0 1025 004c 6062 str r0, [r4, #36] 943:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1026 .loc 1 943 0 1027 004e 6561 str r5, [r4, #20] 940:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1028 .loc 1 940 0 1029 0050 84F82110 strb r1, [r4, #33] 946:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1030 .loc 1 946 0 1031 0054 19D9 bls .L155 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1032 .loc 1 981 0 1033 0056 012D cmp r5, #1 1034 0058 F3D1 bne .L126 1035 005a DFF87480 ldr r8, .L156+4 1036 005e 2268 ldr r2, [r4] 1037 .LVL114: 1038 .L135: 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1039 .loc 1 990 0 1040 0060 1368 ldr r3, [r2] 984:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set the DMA error callback */ ARM GAS /tmp/cc1IKhbe.s page 44 1041 .loc 1 984 0 1042 0062 A069 ldr r0, [r4, #24] 1043 0064 1949 ldr r1, .L156 1044 0066 C162 str r1, [r0, #44] 990:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1045 .loc 1 990 0 1046 0068 DB02 lsls r3, r3, #11 992:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1047 .loc 1 992 0 1048 006a 48BF it mi 1049 006c 7600 lslmi r6, r6, #1 1050 .LVL115: 986:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1051 .loc 1 986 0 1052 006e C0F83480 str r8, [r0, #52] 1002:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1053 .loc 1 1002 0 1054 0072 3346 mov r3, r6 1055 0074 0432 adds r2, r2, #4 1056 0076 3946 mov r1, r7 1057 0078 FFF7FEFF bl HAL_DMA_Start_IT 1058 .LVL116: 1059 007c 00BB cbnz r0, .L152 1012:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1060 .loc 1 1012 0 1061 007e 2268 ldr r2, [r4] 1062 0080 1368 ldr r3, [r2] 1063 0082 43F48023 orr r3, r3, #262144 1064 0086 1360 str r3, [r2] 1065 0088 DBE7 b .L126 1066 .LVL117: 1067 .L155: 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1068 .loc 1 955 0 1069 008a 2168 ldr r1, [r4] 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set the DMA error callback */ 1070 .loc 1 949 0 1071 008c E069 ldr r0, [r4, #28] 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1072 .loc 1 955 0 1073 008e 0B68 ldr r3, [r1] 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set the DMA error callback */ 1074 .loc 1 949 0 1075 0090 DFF840C0 ldr ip, .L156+8 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1076 .loc 1 951 0 1077 0094 DFF83880 ldr r8, .L156+4 949:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set the DMA error callback */ 1078 .loc 1 949 0 1079 0098 C0F82CC0 str ip, [r0, #44] 955:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1080 .loc 1 955 0 1081 009c 1B03 lsls r3, r3, #12 957:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1082 .loc 1 957 0 1083 009e 4CBF ite mi 1084 00a0 7300 lslmi r3, r6, #1 ARM GAS /tmp/cc1IKhbe.s page 45 1085 .LVL118: 1086 00a2 3346 movpl r3, r6 1087 .LVL119: 951:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1088 .loc 1 951 0 1089 00a4 C0F83480 str r8, [r0, #52] 967:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1090 .loc 1 967 0 1091 00a8 0831 adds r1, r1, #8 1092 00aa FFF7FEFF bl HAL_DMA_Start_IT 1093 .LVL120: 1094 00ae 38B9 cbnz r0, .L152 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1095 .loc 1 977 0 1096 00b0 2268 ldr r2, [r4] 1097 00b2 1368 ldr r3, [r2] 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1098 .loc 1 981 0 1099 00b4 032D cmp r5, #3 977:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1100 .loc 1 977 0 1101 00b6 43F40033 orr r3, r3, #131072 1102 00ba 1360 str r3, [r2] 981:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1103 .loc 1 981 0 1104 00bc D0D0 beq .L135 1105 00be C0E7 b .L126 1106 .LVL121: 1107 .L152: 1005:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1108 .loc 1 1005 0 1109 00c0 636A ldr r3, [r4, #36] 1110 00c2 43F00803 orr r3, r3, #8 1111 00c6 6362 str r3, [r4, #36] 1112 .LVL122: 1008:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1113 .loc 1 1008 0 1114 00c8 0120 movs r0, #1 1115 00ca BAE7 b .L126 1116 .L157: 1117 .align 2 1118 .L156: 1119 00cc 00000000 .word CORDIC_DMAInCplt 1120 00d0 00000000 .word CORDIC_DMAError 1121 00d4 00000000 .word CORDIC_DMAOutCplt 1122 .cfi_endproc 1123 .LFE337: 1125 .section .text.HAL_CORDIC_ErrorCallback,"ax",%progbits 1126 .align 1 1127 .p2align 2,,3 1128 .weak HAL_CORDIC_ErrorCallback 1129 .syntax unified 1130 .thumb 1131 .thumb_func 1132 .fpu fpv4-sp-d16 1134 HAL_CORDIC_ErrorCallback: 1135 .LFB351: ARM GAS /tmp/cc1IKhbe.s page 46 1136 .cfi_startproc 1137 @ args = 0, pretend = 0, frame = 0 1138 @ frame_needed = 0, uses_anonymous_args = 0 1139 @ link register save eliminated. 1140 0000 7047 bx lr 1141 .cfi_endproc 1142 .LFE351: 1144 0002 00BF .section .text.CORDIC_DMAError,"ax",%progbits 1145 .align 1 1146 .p2align 2,,3 1147 .syntax unified 1148 .thumb 1149 .thumb_func 1150 .fpu fpv4-sp-d16 1152 CORDIC_DMAError: 1153 .LFB347: 1253:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1254:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1255:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1256:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1257:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief DMA CORDIC Input Data process complete callback. 1258:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hdma DMA handle. 1259:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval None 1260:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1261:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** static void CORDIC_DMAInCplt(DMA_HandleTypeDef *hdma) 1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_HandleTypeDef *hcordic = (CORDIC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 1264:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1265:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Disable the DMA transfer for input request */ 1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CLEAR_BIT(hcordic->Instance->CSR, CORDIC_DMA_WEN); 1267:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1268:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if DMA direction is CORDIC Input only (no DMA for CORDIC Output) */ 1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** if (hcordic->DMADirection == CORDIC_DMA_DIR_IN) 1270:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1271:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC DMA direction to none */ 1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->DMADirection = CORDIC_DMA_DIR_NONE; 1273:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1274:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC state to ready */ 1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_READY; 1276:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1277:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Call calculation complete callback */ 1278:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #if USE_HAL_CORDIC_REGISTER_CALLBACKS == 1 1279:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /*Call registered callback*/ 1280:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->CalculateCpltCallback(hcordic); 1281:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #else 1282:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /*Call legacy weak (surcharged) callback*/ 1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_CORDIC_CalculateCpltCallback(hcordic); 1284:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* USE_HAL_CORDIC_REGISTER_CALLBACKS */ 1285:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1287:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1288:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1289:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief DMA CORDIC Output Data process complete callback. 1290:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hdma DMA handle. 1291:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval None 1292:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1293:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** static void CORDIC_DMAOutCplt(DMA_HandleTypeDef *hdma) ARM GAS /tmp/cc1IKhbe.s page 47 1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_HandleTypeDef *hcordic = (CORDIC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 1296:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1297:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Disable the DMA transfer for output request */ 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CLEAR_BIT(hcordic->Instance->CSR, CORDIC_DMA_REN); 1299:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1300:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC DMA direction to none */ 1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->DMADirection = CORDIC_DMA_DIR_NONE; 1302:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1303:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Change the CORDIC state to ready */ 1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_READY; 1305:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1306:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Call calculation complete callback */ 1307:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #if USE_HAL_CORDIC_REGISTER_CALLBACKS == 1 1308:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /*Call registered callback*/ 1309:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->CalculateCpltCallback(hcordic); 1310:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #else 1311:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /*Call legacy weak (surcharged) callback*/ 1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_CORDIC_CalculateCpltCallback(hcordic); 1313:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* USE_HAL_CORDIC_REGISTER_CALLBACKS */ 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1315:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1316:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /** 1317:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @brief DMA CORDIC communication error callback. 1318:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @param hdma DMA handle. 1319:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** * @retval None 1320:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** */ 1321:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** static void CORDIC_DMAError(DMA_HandleTypeDef *hdma) 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1154 .loc 1 1322 0 1155 .cfi_startproc 1156 @ args = 0, pretend = 0, frame = 0 1157 @ frame_needed = 0, uses_anonymous_args = 0 1158 .LVL123: 1323:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_HandleTypeDef *hcordic = (CORDIC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 1159 .loc 1 1323 0 1160 0000 806A ldr r0, [r0, #40] 1161 .LVL124: 1322:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_HandleTypeDef *hcordic = (CORDIC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 1162 .loc 1 1322 0 1163 0002 08B5 push {r3, lr} 1164 .LCFI22: 1165 .cfi_def_cfa_offset 8 1166 .cfi_offset 3, -8 1167 .cfi_offset 14, -4 1324:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1325:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set CORDIC handle state to error */ 1326:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->State = HAL_CORDIC_STATE_READY; 1168 .loc 1 1326 0 1169 0004 0123 movs r3, #1 1170 0006 80F82130 strb r3, [r0, #33] 1327:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1328:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Set CORDIC handle error code to DMA error */ 1329:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCode |= HAL_CORDIC_ERROR_DMA; 1171 .loc 1 1329 0 1172 000a 436A ldr r3, [r0, #36] 1173 000c 43F00803 orr r3, r3, #8 ARM GAS /tmp/cc1IKhbe.s page 48 1174 0010 4362 str r3, [r0, #36] 1330:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1331:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Call user callback */ 1332:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #if USE_HAL_CORDIC_REGISTER_CALLBACKS == 1 1333:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /*Call registered callback*/ 1334:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** hcordic->ErrorCallback(hcordic); 1335:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #else 1336:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /*Call legacy weak (surcharged) callback*/ 1337:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** HAL_CORDIC_ErrorCallback(hcordic); 1175 .loc 1 1337 0 1176 0012 FFF7FEFF bl HAL_CORDIC_ErrorCallback 1177 .LVL125: 1338:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* USE_HAL_CORDIC_REGISTER_CALLBACKS */ 1339:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1178 .loc 1 1339 0 1179 0016 08BD pop {r3, pc} 1180 .cfi_endproc 1181 .LFE347: 1183 .section .text.HAL_CORDIC_CalculateCpltCallback,"ax",%progbits 1184 .align 1 1185 .p2align 2,,3 1186 .weak HAL_CORDIC_CalculateCpltCallback 1187 .syntax unified 1188 .thumb 1189 .thumb_func 1190 .fpu fpv4-sp-d16 1192 HAL_CORDIC_CalculateCpltCallback: 1193 .LFB353: 1194 .cfi_startproc 1195 @ args = 0, pretend = 0, frame = 0 1196 @ frame_needed = 0, uses_anonymous_args = 0 1197 @ link register save eliminated. 1198 0000 7047 bx lr 1199 .cfi_endproc 1200 .LFE353: 1202 0002 00BF .section .text.CORDIC_DMAInCplt,"ax",%progbits 1203 .align 1 1204 .p2align 2,,3 1205 .syntax unified 1206 .thumb 1207 .thumb_func 1208 .fpu fpv4-sp-d16 1210 CORDIC_DMAInCplt: 1211 .LFB345: 1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_HandleTypeDef *hcordic = (CORDIC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 1212 .loc 1 1262 0 1213 .cfi_startproc 1214 @ args = 0, pretend = 0, frame = 0 1215 @ frame_needed = 0, uses_anonymous_args = 0 1216 .LVL126: 1263:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1217 .loc 1 1263 0 1218 0000 806A ldr r0, [r0, #40] 1219 .LVL127: 1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1220 .loc 1 1266 0 1221 0002 0268 ldr r2, [r0] ARM GAS /tmp/cc1IKhbe.s page 49 1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1222 .loc 1 1269 0 1223 0004 4169 ldr r1, [r0, #20] 1262:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_HandleTypeDef *hcordic = (CORDIC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 1224 .loc 1 1262 0 1225 0006 08B5 push {r3, lr} 1226 .LCFI23: 1227 .cfi_def_cfa_offset 8 1228 .cfi_offset 3, -8 1229 .cfi_offset 14, -4 1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1230 .loc 1 1266 0 1231 0008 1368 ldr r3, [r2] 1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1232 .loc 1 1269 0 1233 000a 0129 cmp r1, #1 1266:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1234 .loc 1 1266 0 1235 000c 23F48023 bic r3, r3, #262144 1236 0010 1360 str r3, [r2] 1269:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1237 .loc 1 1269 0 1238 0012 00D0 beq .L165 1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1239 .loc 1 1286 0 1240 0014 08BD pop {r3, pc} 1241 .L165: 1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1242 .loc 1 1272 0 1243 0016 0023 movs r3, #0 1275:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1244 .loc 1 1275 0 1245 0018 80F82110 strb r1, [r0, #33] 1272:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1246 .loc 1 1272 0 1247 001c 4361 str r3, [r0, #20] 1283:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* USE_HAL_CORDIC_REGISTER_CALLBACKS */ 1248 .loc 1 1283 0 1249 001e FFF7FEFF bl HAL_CORDIC_CalculateCpltCallback 1250 .LVL128: 1286:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1251 .loc 1 1286 0 1252 0022 08BD pop {r3, pc} 1253 .cfi_endproc 1254 .LFE345: 1256 .section .text.CORDIC_DMAOutCplt,"ax",%progbits 1257 .align 1 1258 .p2align 2,,3 1259 .syntax unified 1260 .thumb 1261 .thumb_func 1262 .fpu fpv4-sp-d16 1264 CORDIC_DMAOutCplt: 1265 .LFB346: 1294:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** CORDIC_HandleTypeDef *hcordic = (CORDIC_HandleTypeDef *)((DMA_HandleTypeDef *)hdma)->Parent; 1266 .loc 1 1294 0 1267 .cfi_startproc ARM GAS /tmp/cc1IKhbe.s page 50 1268 @ args = 0, pretend = 0, frame = 0 1269 @ frame_needed = 0, uses_anonymous_args = 0 1270 .LVL129: 1271 0000 38B5 push {r3, r4, r5, lr} 1272 .LCFI24: 1273 .cfi_def_cfa_offset 16 1274 .cfi_offset 3, -16 1275 .cfi_offset 4, -12 1276 .cfi_offset 5, -8 1277 .cfi_offset 14, -4 1295:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1278 .loc 1 1295 0 1279 0002 836A ldr r3, [r0, #40] 1280 .LVL130: 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1281 .loc 1 1298 0 1282 0004 1968 ldr r1, [r3] 1283 0006 0A68 ldr r2, [r1] 1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1284 .loc 1 1301 0 1285 0008 0025 movs r5, #0 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1286 .loc 1 1298 0 1287 000a 22F40032 bic r2, r2, #131072 1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1288 .loc 1 1304 0 1289 000e 0124 movs r4, #1 1298:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1290 .loc 1 1298 0 1291 0010 0A60 str r2, [r1] 1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* USE_HAL_CORDIC_REGISTER_CALLBACKS */ 1292 .loc 1 1312 0 1293 0012 1846 mov r0, r3 1294 .LVL131: 1301:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1295 .loc 1 1301 0 1296 0014 5D61 str r5, [r3, #20] 1304:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1297 .loc 1 1304 0 1298 0016 83F82140 strb r4, [r3, #33] 1312:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* USE_HAL_CORDIC_REGISTER_CALLBACKS */ 1299 .loc 1 1312 0 1300 001a FFF7FEFF bl HAL_CORDIC_CalculateCpltCallback 1301 .LVL132: 1314:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1302 .loc 1 1314 0 1303 001e 38BD pop {r3, r4, r5, pc} 1304 .cfi_endproc 1305 .LFE346: 1307 .section .text.HAL_CORDIC_IRQHandler,"ax",%progbits 1308 .align 1 1309 .p2align 2,,3 1310 .global HAL_CORDIC_IRQHandler 1311 .syntax unified 1312 .thumb 1313 .thumb_func 1314 .fpu fpv4-sp-d16 ARM GAS /tmp/cc1IKhbe.s page 51 1316 HAL_CORDIC_IRQHandler: 1317 .LFB340: 1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if calculation complete interrupt is enabled and if result ready 1318 .loc 1 1103 0 1319 .cfi_startproc 1320 @ args = 0, pretend = 0, frame = 0 1321 @ frame_needed = 0, uses_anonymous_args = 0 1322 .LVL133: 1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1323 .loc 1 1106 0 1324 0000 0268 ldr r2, [r0] 1103:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Check if calculation complete interrupt is enabled and if result ready 1325 .loc 1 1103 0 1326 0002 38B5 push {r3, r4, r5, lr} 1327 .LCFI25: 1328 .cfi_def_cfa_offset 16 1329 .cfi_offset 3, -16 1330 .cfi_offset 4, -12 1331 .cfi_offset 5, -8 1332 .cfi_offset 14, -4 1106:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1333 .loc 1 1106 0 1334 0004 1368 ldr r3, [r2] 1335 0006 DC03 lsls r4, r3, #15 1336 0008 02D5 bpl .L168 1108:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1337 .loc 1 1108 0 1338 000a 1368 ldr r3, [r2] 1339 000c 002B cmp r3, #0 1340 000e 00DB blt .L183 1341 .L168: 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1342 .loc 1 1147 0 1343 0010 38BD pop {r3, r4, r5, pc} 1344 .L183: 1345 .LBB54: 1346 .LBB55: 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1347 .loc 1 1240 0 1348 0012 8368 ldr r3, [r0, #8] 1349 .LBE55: 1350 .LBE54: 1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1351 .loc 1 1111 0 1352 0014 0469 ldr r4, [r0, #16] 1353 .LBB58: 1354 .LBB56: 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1355 .loc 1 1240 0 1356 0016 9568 ldr r5, [r2, #8] 1357 0018 1946 mov r1, r3 1358 .LBE56: 1359 .LBE58: 1111:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1360 .loc 1 1111 0 1361 001a 013C subs r4, r4, #1 1362 001c 0461 str r4, [r0, #16] ARM GAS /tmp/cc1IKhbe.s page 52 1363 .LVL134: 1364 .LBB59: 1365 .LBB57: 1240:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1366 .loc 1 1240 0 1367 001e 41F8045B str r5, [r1], #4 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1368 .loc 1 1246 0 1369 0022 1468 ldr r4, [r2] 1243:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1370 .loc 1 1243 0 1371 0024 8160 str r1, [r0, #8] 1246:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1372 .loc 1 1246 0 1373 0026 2103 lsls r1, r4, #12 1374 0028 03D5 bpl .L172 1249:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1375 .loc 1 1249 0 1376 002a 9168 ldr r1, [r2, #8] 1377 002c 5960 str r1, [r3, #4] 1252:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1378 .loc 1 1252 0 1379 002e 0833 adds r3, r3, #8 1380 0030 8360 str r3, [r0, #8] 1381 .L172: 1382 .LVL135: 1383 .LBE57: 1384 .LBE59: 1117:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1385 .loc 1 1117 0 1386 0032 C368 ldr r3, [r0, #12] 1387 0034 73B1 cbz r3, .L174 1388 .LBB60: 1389 .LBB61: 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1390 .loc 1 1214 0 1391 0036 4468 ldr r4, [r0, #4] 1392 .LBE61: 1393 .LBE60: 1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1394 .loc 1 1120 0 1395 0038 013B subs r3, r3, #1 1396 .LBB64: 1397 .LBB62: 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1398 .loc 1 1214 0 1399 003a 2146 mov r1, r4 1400 .LBE62: 1401 .LBE64: 1120:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1402 .loc 1 1120 0 1403 003c C360 str r3, [r0, #12] 1404 .LVL136: 1405 .LBB65: 1406 .LBB63: 1214:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1407 .loc 1 1214 0 ARM GAS /tmp/cc1IKhbe.s page 53 1408 003e 51F8043B ldr r3, [r1], #4 1409 0042 5360 str r3, [r2, #4] 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1410 .loc 1 1220 0 1411 0044 1368 ldr r3, [r2] 1217:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1412 .loc 1 1217 0 1413 0046 4160 str r1, [r0, #4] 1220:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1414 .loc 1 1220 0 1415 0048 DB02 lsls r3, r3, #11 1416 004a 03D5 bpl .L174 1223:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1417 .loc 1 1223 0 1418 004c 6368 ldr r3, [r4, #4] 1419 004e 5360 str r3, [r2, #4] 1226:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1420 .loc 1 1226 0 1421 0050 0834 adds r4, r4, #8 1422 0052 4460 str r4, [r0, #4] 1423 .LVL137: 1424 .L174: 1425 .LBE63: 1426 .LBE65: 1128:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** { 1427 .loc 1 1128 0 1428 0054 0369 ldr r3, [r0, #16] 1429 0056 002B cmp r3, #0 1430 0058 DAD1 bne .L168 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1431 .loc 1 1131 0 1432 005a 1168 ldr r1, [r2] 1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1433 .loc 1 1134 0 1434 005c 0124 movs r4, #1 1131:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1435 .loc 1 1131 0 1436 005e 21F48031 bic r1, r1, #65536 1437 0062 1160 str r1, [r2] 1134:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1438 .loc 1 1134 0 1439 0064 80F82140 strb r4, [r0, #33] 1142:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** #endif /* USE_HAL_CORDIC_REGISTER_CALLBACKS */ 1440 .loc 1 1142 0 1441 0068 FFF7FEFF bl HAL_CORDIC_CalculateCpltCallback 1442 .LVL138: 1147:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1443 .loc 1 1147 0 1444 006c 38BD pop {r3, r4, r5, pc} 1445 .cfi_endproc 1446 .LFE340: 1448 006e 00BF .section .text.HAL_CORDIC_GetState,"ax",%progbits 1449 .align 1 1450 .p2align 2,,3 1451 .global HAL_CORDIC_GetState 1452 .syntax unified 1453 .thumb ARM GAS /tmp/cc1IKhbe.s page 54 1454 .thumb_func 1455 .fpu fpv4-sp-d16 1457 HAL_CORDIC_GetState: 1458 .LFB341: 1174:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return CORDIC handle state */ 1459 .loc 1 1174 0 1460 .cfi_startproc 1461 @ args = 0, pretend = 0, frame = 0 1462 @ frame_needed = 0, uses_anonymous_args = 0 1463 @ link register save eliminated. 1464 .LVL139: 1176:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1465 .loc 1 1176 0 1466 0000 90F82100 ldrb r0, [r0, #33] @ zero_extendqisi2 1467 .LVL140: 1177:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1468 .loc 1 1177 0 1469 0004 7047 bx lr 1470 .cfi_endproc 1471 .LFE341: 1473 0006 00BF .section .text.HAL_CORDIC_GetError,"ax",%progbits 1474 .align 1 1475 .p2align 2,,3 1476 .global HAL_CORDIC_GetError 1477 .syntax unified 1478 .thumb 1479 .thumb_func 1480 .fpu fpv4-sp-d16 1482 HAL_CORDIC_GetError: 1483 .LFB342: 1187:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** /* Return CORDIC error code */ 1484 .loc 1 1187 0 1485 .cfi_startproc 1486 @ args = 0, pretend = 0, frame = 0 1487 @ frame_needed = 0, uses_anonymous_args = 0 1488 @ link register save eliminated. 1489 .LVL141: 1189:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** } 1490 .loc 1 1189 0 1491 0000 406A ldr r0, [r0, #36] 1492 .LVL142: 1190:Drivers/STM32G4xx_HAL_Driver/Src/stm32g4xx_hal_cordic.c **** 1493 .loc 1 1190 0 1494 0002 7047 bx lr 1495 .cfi_endproc 1496 .LFE342: 1498 .text 1499 .Letext0: 1500 .file 2 "/usr/include/newlib/machine/_default_types.h" 1501 .file 3 "/usr/include/newlib/sys/_stdint.h" 1502 .file 4 "Drivers/CMSIS/Include/core_cm4.h" 1503 .file 5 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/system_stm32g4xx.h" 1504 .file 6 "Drivers/CMSIS/Device/ST/STM32G4xx/Include/stm32g431xx.h" 1505 .file 7 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_def.h" 1506 .file 8 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_dma.h" 1507 .file 9 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_cordic.h" 1508 .file 10 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_flash.h" ARM GAS /tmp/cc1IKhbe.s page 55 1509 .file 11 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal_uart.h" 1510 .file 12 "Drivers/STM32G4xx_HAL_Driver/Inc/stm32g4xx_hal.h" ARM GAS /tmp/cc1IKhbe.s page 56 DEFINED SYMBOLS *ABS*:0000000000000000 stm32g4xx_hal_cordic.c /tmp/cc1IKhbe.s:16 .text.HAL_CORDIC_MspInit:0000000000000000 $t /tmp/cc1IKhbe.s:24 .text.HAL_CORDIC_MspInit:0000000000000000 HAL_CORDIC_MspInit /tmp/cc1IKhbe.s:39 .text.HAL_CORDIC_Init:0000000000000000 $t /tmp/cc1IKhbe.s:47 .text.HAL_CORDIC_Init:0000000000000000 HAL_CORDIC_Init /tmp/cc1IKhbe.s:109 .text.HAL_CORDIC_MspDeInit:0000000000000000 $t /tmp/cc1IKhbe.s:117 .text.HAL_CORDIC_MspDeInit:0000000000000000 HAL_CORDIC_MspDeInit /tmp/cc1IKhbe.s:128 .text.HAL_CORDIC_DeInit:0000000000000000 $t /tmp/cc1IKhbe.s:136 .text.HAL_CORDIC_DeInit:0000000000000000 HAL_CORDIC_DeInit /tmp/cc1IKhbe.s:188 .text.HAL_CORDIC_Configure:0000000000000000 $t /tmp/cc1IKhbe.s:196 .text.HAL_CORDIC_Configure:0000000000000000 HAL_CORDIC_Configure /tmp/cc1IKhbe.s:263 .text.HAL_CORDIC_Configure:0000000000000044 $d /tmp/cc1IKhbe.s:268 .text.HAL_CORDIC_Calculate:0000000000000000 $t /tmp/cc1IKhbe.s:276 .text.HAL_CORDIC_Calculate:0000000000000000 HAL_CORDIC_Calculate /tmp/cc1IKhbe.s:514 .text.HAL_CORDIC_CalculateZO:0000000000000000 $t /tmp/cc1IKhbe.s:522 .text.HAL_CORDIC_CalculateZO:0000000000000000 HAL_CORDIC_CalculateZO /tmp/cc1IKhbe.s:812 .text.HAL_CORDIC_Calculate_IT:0000000000000000 $t /tmp/cc1IKhbe.s:820 .text.HAL_CORDIC_Calculate_IT:0000000000000000 HAL_CORDIC_Calculate_IT /tmp/cc1IKhbe.s:936 .text.HAL_CORDIC_Calculate_DMA:0000000000000000 $t /tmp/cc1IKhbe.s:944 .text.HAL_CORDIC_Calculate_DMA:0000000000000000 HAL_CORDIC_Calculate_DMA /tmp/cc1IKhbe.s:1119 .text.HAL_CORDIC_Calculate_DMA:00000000000000cc $d /tmp/cc1IKhbe.s:1210 .text.CORDIC_DMAInCplt:0000000000000000 CORDIC_DMAInCplt /tmp/cc1IKhbe.s:1152 .text.CORDIC_DMAError:0000000000000000 CORDIC_DMAError /tmp/cc1IKhbe.s:1264 .text.CORDIC_DMAOutCplt:0000000000000000 CORDIC_DMAOutCplt /tmp/cc1IKhbe.s:1126 .text.HAL_CORDIC_ErrorCallback:0000000000000000 $t /tmp/cc1IKhbe.s:1134 .text.HAL_CORDIC_ErrorCallback:0000000000000000 HAL_CORDIC_ErrorCallback /tmp/cc1IKhbe.s:1145 .text.CORDIC_DMAError:0000000000000000 $t /tmp/cc1IKhbe.s:1184 .text.HAL_CORDIC_CalculateCpltCallback:0000000000000000 $t /tmp/cc1IKhbe.s:1192 .text.HAL_CORDIC_CalculateCpltCallback:0000000000000000 HAL_CORDIC_CalculateCpltCallback /tmp/cc1IKhbe.s:1203 .text.CORDIC_DMAInCplt:0000000000000000 $t /tmp/cc1IKhbe.s:1257 .text.CORDIC_DMAOutCplt:0000000000000000 $t /tmp/cc1IKhbe.s:1308 .text.HAL_CORDIC_IRQHandler:0000000000000000 $t /tmp/cc1IKhbe.s:1316 .text.HAL_CORDIC_IRQHandler:0000000000000000 HAL_CORDIC_IRQHandler /tmp/cc1IKhbe.s:1449 .text.HAL_CORDIC_GetState:0000000000000000 $t /tmp/cc1IKhbe.s:1457 .text.HAL_CORDIC_GetState:0000000000000000 HAL_CORDIC_GetState /tmp/cc1IKhbe.s:1474 .text.HAL_CORDIC_GetError:0000000000000000 $t /tmp/cc1IKhbe.s:1482 .text.HAL_CORDIC_GetError:0000000000000000 HAL_CORDIC_GetError UNDEFINED SYMBOLS HAL_GetTick HAL_DMA_Start_IT