ARM GAS /tmp/ccwgRvGR.s page 1 1 .cpu cortex-m4 2 .eabi_attribute 27, 1 3 .eabi_attribute 28, 1 4 .eabi_attribute 20, 1 5 .eabi_attribute 21, 1 6 .eabi_attribute 23, 3 7 .eabi_attribute 24, 1 8 .eabi_attribute 25, 1 9 .eabi_attribute 26, 1 10 .eabi_attribute 30, 1 11 .eabi_attribute 34, 1 12 .eabi_attribute 18, 4 13 .file "stm32f4xx_hal_dma.c" 14 .text 15 .Ltext0: 16 .cfi_sections .debug_frame 17 .section .text.DMA_SetConfig,"ax",%progbits 18 .align 1 19 .syntax unified 20 .thumb 21 .thumb_func 22 .fpu fpv4-sp-d16 24 DMA_SetConfig: 25 .LFB142: 26 .file 1 "Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c" 1:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 2:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ****************************************************************************** 3:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @file stm32f4xx_hal_dma.c 4:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @author MCD Application Team 5:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief DMA HAL module driver. 6:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * 7:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * This file provides firmware functions to manage the following 8:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * functionalities of the Direct Memory Access (DMA) peripheral: 9:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * + Initialization and de-initialization functions 10:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * + IO operation functions 11:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * + Peripheral State and errors functions 12:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @verbatim 13:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ============================================================================== 14:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ##### How to use this driver ##### 15:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ============================================================================== 16:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..] 17:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (#) Enable and configure the peripheral to be connected to the DMA Stream 18:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (except for internal SRAM/FLASH memories: no initialization is 19:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** necessary) please refer to Reference manual for connection between peripherals 20:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** and DMA requests. 21:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 22:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (#) For a given Stream, program the required configuration through the following parameters: 23:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Transfer Direction, Source and Destination data formats, 24:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Circular, Normal or peripheral flow control mode, Stream Priority level, 25:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Source and Destination Increment mode, FIFO mode and its Threshold (if needed), 26:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Burst mode for Source and/or Destination (if needed) using HAL_DMA_Init() function. 27:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 28:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** -@- Prior to HAL_DMA_Init() the clock must be enabled for DMA through the following macros: 29:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_RCC_DMA1_CLK_ENABLE() or __HAL_RCC_DMA2_CLK_ENABLE(). 30:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 31:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *** Polling mode IO operation *** 32:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ================================= ARM GAS /tmp/ccwgRvGR.s page 2 33:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..] 34:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Use HAL_DMA_Start() to start DMA transfer after the configuration of Source 35:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** address and destination address and the Length of data to be transferred. 36:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Use HAL_DMA_PollForTransfer() to poll for the end of current transfer, in this 37:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case a fixed Timeout can be configured by User depending from his application. 38:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Use HAL_DMA_Abort() function to abort the current transfer. 39:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 40:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *** Interrupt mode IO operation *** 41:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** =================================== 42:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..] 43:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Configure the DMA interrupt priority using HAL_NVIC_SetPriority() 44:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Enable the DMA IRQ handler using HAL_NVIC_EnableIRQ() 45:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Use HAL_DMA_Start_IT() to start DMA transfer after the configuration of 46:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Source address and destination address and the Length of data to be transferred. In t 47:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case the DMA interrupt is configured 48:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Use HAL_DMA_IRQHandler() called under DMA_IRQHandler() Interrupt subroutine 49:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) At the end of data transfer HAL_DMA_IRQHandler() function is executed and user can 50:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** add his own function by customization of function pointer XferCpltCallback and 51:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** XferErrorCallback (i.e a member of DMA handle structure). 52:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..] 53:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (#) Use HAL_DMA_GetState() function to return the DMA state and HAL_DMA_GetError() in case of 54:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** detection. 55:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 56:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (#) Use HAL_DMA_Abort_IT() function to abort the current transfer 57:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 58:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** -@- In Memory-to-Memory transfer mode, Circular mode is not allowed. 59:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 60:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** -@- The FIFO is used mainly to reduce bus usage and to allow data packing/unpacking: it is 61:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** possible to set different Data Sizes for the Peripheral and the Memory (ie. you can set 62:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Half-Word data size for the peripheral to access its data register and set Word data siz 63:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** for the Memory to gain in access time. Each two half words will be packed and written in 64:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** a single access to a Word in the Memory). 65:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 66:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** -@- When FIFO is disabled, it is not allowed to configure different Data Sizes for Source 67:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** and Destination. In this case the Peripheral Data Size will be applied to both Source 68:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** and Destination. 69:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 70:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *** DMA HAL driver macros list *** 71:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ============================================= 72:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..] 73:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Below the list of most used macros in DMA HAL driver. 74:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 75:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) __HAL_DMA_ENABLE: Enable the specified DMA Stream. 76:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) __HAL_DMA_DISABLE: Disable the specified DMA Stream. 77:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) __HAL_DMA_GET_IT_SOURCE: Check whether the specified DMA Stream interrupt has occurred or 78:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 79:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..] 80:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (@) You can refer to the DMA HAL driver header file for more useful macros 81:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 82:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @endverbatim 83:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ****************************************************************************** 84:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @attention 85:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * 86:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** *

© Copyright (c) 2017 STMicroelectronics. 87:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * All rights reserved.

88:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * 89:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * This software component is licensed by ST under BSD 3-Clause license, ARM GAS /tmp/ccwgRvGR.s page 3 90:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the "License"; You may not use this file except in compliance with the 91:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * License. You may obtain a copy of the License at: 92:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * opensource.org/licenses/BSD-3-Clause 93:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * 94:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ****************************************************************************** 95:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 96:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 97:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Includes ------------------------------------------------------------------*/ 98:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** #include "stm32f4xx_hal.h" 99:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup STM32F4xx_HAL_Driver 101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{ 102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @defgroup DMA DMA 105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief DMA HAL module driver 106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{ 107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** #ifdef HAL_DMA_MODULE_ENABLED 110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Private types -------------------------------------------------------------*/ 112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** typedef struct 113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __IO uint32_t ISR; /*!< DMA interrupt status register */ 115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __IO uint32_t Reserved0; 116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __IO uint32_t IFCR; /*!< DMA interrupt flag clear register */ 117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } DMA_Base_Registers; 118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Private variables ---------------------------------------------------------*/ 120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Private constants ---------------------------------------------------------*/ 121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Private_Constants 122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{ 123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** #define HAL_TIMEOUT_DMA_ABORT 5U /* 5 ms */ 125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @} 127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Private macros ------------------------------------------------------------*/ 129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Private functions ---------------------------------------------------------*/ 130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Private_Functions 131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{ 132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32 134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static uint32_t DMA_CalcBaseAndBitshift(DMA_HandleTypeDef *hdma); 135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static HAL_StatusTypeDef DMA_CheckFifoParam(DMA_HandleTypeDef *hdma); 136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @} 139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Exported functions ---------------------------------------------------------*/ 142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Exported_Functions 143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{ 144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Exported_Functions_Group1 ARM GAS /tmp/ccwgRvGR.s page 4 147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * 148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @verbatim 149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** =============================================================================== 150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ##### Initialization and de-initialization functions ##### 151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** =============================================================================== 152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..] 153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** This section provides functions allowing to initialize the DMA Stream source 154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** and destination addresses, incrementation and data sizes, transfer direction, 155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** circular/normal mode selection, memory-to-memory mode selection and Stream priority value. 156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..] 157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** The HAL_DMA_Init() function follows the DMA configuration procedures as described in 158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** reference manual. 159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @endverbatim 161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{ 162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Initialize the DMA according to the specified 166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * parameters in the DMA_InitTypeDef and create the associated handle. 167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma Pointer to a DMA_HandleTypeDef structure that contains 168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status 170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Init(DMA_HandleTypeDef *hdma) 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = 0U; 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tickstart = HAL_GetTick(); 175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs; 176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the DMA peripheral state */ 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma == NULL) 179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR; 181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the parameters */ 184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_STREAM_ALL_INSTANCE(hdma->Instance)); 185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_CHANNEL(hdma->Init.Channel)); 186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_DIRECTION(hdma->Init.Direction)); 187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_PERIPHERAL_INC_STATE(hdma->Init.PeriphInc)); 188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_MEMORY_INC_STATE(hdma->Init.MemInc)); 189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_PERIPHERAL_DATA_SIZE(hdma->Init.PeriphDataAlignment)); 190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_MEMORY_DATA_SIZE(hdma->Init.MemDataAlignment)); 191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_MODE(hdma->Init.Mode)); 192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_PRIORITY(hdma->Init.Priority)); 193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_FIFO_MODE_STATE(hdma->Init.FIFOMode)); 194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the memory burst, peripheral burst and FIFO threshold parameters only 195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** when FIFO mode is enabled */ 196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->Init.FIFOMode != DMA_FIFOMODE_DISABLE) 197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_FIFO_THRESHOLD(hdma->Init.FIFOThreshold)); 199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_MEMORY_BURST(hdma->Init.MemBurst)); 200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_PERIPHERAL_BURST(hdma->Init.PeriphBurst)); 201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Allocate lock resource */ ARM GAS /tmp/ccwgRvGR.s page 5 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change DMA peripheral state */ 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_BUSY; 208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the peripheral */ 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma); 211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check if the DMA Stream is effectively disabled */ 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** while((hdma->Instance->CR & DMA_SxCR_EN) != RESET) 214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check for the Timeout */ 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT) 217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */ 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; 220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */ 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_TIMEOUT; 223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_TIMEOUT; 225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get the CR register value */ 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp = hdma->Instance->CR; 230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear CHSEL, MBURST, PBURST, PL, MSIZE, PSIZE, MINC, PINC, CIRC, DIR, CT and DBM bits */ 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp &= ((uint32_t)~(DMA_SxCR_CHSEL | DMA_SxCR_MBURST | DMA_SxCR_PBURST | \ 233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_SxCR_PL | DMA_SxCR_MSIZE | DMA_SxCR_PSIZE | \ 234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_SxCR_MINC | DMA_SxCR_PINC | DMA_SxCR_CIRC | \ 235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_SxCR_DIR | DMA_SxCR_CT | DMA_SxCR_DBM)); 236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Prepare the DMA Stream configuration */ 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp |= hdma->Init.Channel | hdma->Init.Direction | 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc | 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority; 242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* the Memory burst and peripheral burst are not used when the FIFO is disabled */ 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->Init.FIFOMode == DMA_FIFOMODE_ENABLE) 245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get memory burst and peripheral burst */ 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp |= hdma->Init.MemBurst | hdma->Init.PeriphBurst; 248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Write to DMA Stream CR register */ 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR = tmp; 252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get the FCR register value */ 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp = hdma->Instance->FCR; 255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear Direct mode and FIFO threshold bits */ 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp &= (uint32_t)~(DMA_SxFCR_DMDIS | DMA_SxFCR_FTH); 258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Prepare the DMA Stream FIFO configuration */ 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp |= hdma->Init.FIFOMode; ARM GAS /tmp/ccwgRvGR.s page 6 261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* The FIFO threshold is not used when the FIFO mode is disabled */ 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->Init.FIFOMode == DMA_FIFOMODE_ENABLE) 264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get the FIFO threshold */ 266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmp |= hdma->Init.FIFOThreshold; 267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check compatibility between FIFO threshold level and size of the memory burst */ 269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* for INCR4, INCR8, INCR16 bursts */ 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if (hdma->Init.MemBurst != DMA_MBURST_SINGLE) 271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if (DMA_CheckFifoParam(hdma) != HAL_OK) 273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */ 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_PARAM; 276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */ 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; 279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR; 281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Write to DMA Stream FCR */ 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR = tmp; 287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Initialize StreamBaseAddress and StreamIndex parameters to be used to calculate 289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA steam Base Address needed by HAL_DMA_IRQHandler() and HAL_DMA_PollForTransfer() */ 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs = (DMA_Base_Registers *)DMA_CalcBaseAndBitshift(hdma); 291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 292:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear all interrupt flags */ 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = 0x3FU << hdma->StreamIndex; 294:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 295:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Initialize the error code */ 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE; 297:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 298:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Initialize the DMA state */ 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; 300:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_OK; 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 303:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 304:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 305:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief DeInitializes the DMA peripheral 306:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 307:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 308:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status 309:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 310:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_DeInit(DMA_HandleTypeDef *hdma) 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 312:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs; 313:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 314:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the DMA peripheral state */ 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma == NULL) 316:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR; ARM GAS /tmp/ccwgRvGR.s page 7 318:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 319:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 320:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the DMA peripheral state */ 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->State == HAL_DMA_STATE_BUSY) 322:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 323:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Return error status */ 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_BUSY; 325:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 326:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 327:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the parameters */ 328:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_STREAM_ALL_INSTANCE(hdma->Instance)); 329:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 330:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the selected DMA Streamx */ 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma); 332:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 333:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset DMA Streamx control register */ 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR = 0U; 335:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 336:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset DMA Streamx number of data to transfer register */ 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->NDTR = 0U; 338:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 339:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset DMA Streamx peripheral address register */ 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->PAR = 0U; 341:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 342:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset DMA Streamx memory 0 address register */ 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->M0AR = 0U; 344:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 345:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset DMA Streamx memory 1 address register */ 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->M1AR = 0U; 347:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 348:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset DMA Streamx FIFO control register */ 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR = 0x00000021U; 350:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 351:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get DMA steam Base Address */ 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs = (DMA_Base_Registers *)DMA_CalcBaseAndBitshift(hdma); 353:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 354:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clean all callbacks */ 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferCpltCallback = NULL; 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL; 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback = NULL; 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback = NULL; 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback = NULL; 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback = NULL; 361:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 362:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear all interrupt flags at correct offset within the register */ 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = 0x3FU << hdma->StreamIndex; 364:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 365:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset the error code */ 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE; 367:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 368:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Reset the DMA state */ 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_RESET; 370:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 371:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Release Lock */ 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 373:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_OK; ARM GAS /tmp/ccwgRvGR.s page 8 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 376:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 377:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 378:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @} 379:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 380:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 381:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Exported_Functions_Group2 382:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * 383:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @verbatim 384:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** =============================================================================== 385:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ##### IO operation functions ##### 386:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** =============================================================================== 387:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..] This section provides functions allowing to: 388:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Configure the source, destination address and data length and Start DMA transfer 389:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Configure the source, destination address and data length and 390:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** Start DMA transfer with interrupt 391:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Abort DMA transfer 392:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Poll for transfer complete 393:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Handle DMA interrupt request 394:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 395:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @endverbatim 396:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{ 397:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 398:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 399:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 400:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Starts the DMA Transfer. 401:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 402:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 403:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param SrcAddress The source memory Buffer address 404:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param DstAddress The destination memory Buffer address 405:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param DataLength The length of data to be transferred from source to destination 406:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status 407:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 408:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Start(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; 411:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 412:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the parameters */ 413:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_BUFFER_SIZE(DataLength)); 414:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 415:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process locked */ 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_LOCK(hdma); 417:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(HAL_DMA_STATE_READY == hdma->State) 419:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 420:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change DMA peripheral state */ 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_BUSY; 422:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 423:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Initialize the error code */ 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE; 425:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 426:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure the source, destination address and the data length */ 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); 428:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 429:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Enable the Peripheral */ 430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_ENABLE(hdma); 431:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } ARM GAS /tmp/ccwgRvGR.s page 9 432:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 433:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 434:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process unlocked */ 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 436:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 437:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Return error status */ 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_BUSY; 439:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 440:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return status; 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 442:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 443:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 444:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Start the DMA Transfer with interrupt enabled. 445:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 446:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 447:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param SrcAddress The source memory Buffer address 448:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param DstAddress The destination memory Buffer address 449:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param DataLength The length of data to be transferred from source to destination 450:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status 451:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 452:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Start_IT(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddres 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; 455:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 456:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* calculate DMA base and stream number */ 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; 458:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 459:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check the parameters */ 460:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** assert_param(IS_DMA_BUFFER_SIZE(DataLength)); 461:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 462:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process locked */ 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_LOCK(hdma); 464:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(HAL_DMA_STATE_READY == hdma->State) 466:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 467:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change DMA peripheral state */ 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_BUSY; 469:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 470:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Initialize the error code */ 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NONE; 472:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 473:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure the source, destination address and the data length */ 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_SetConfig(hdma, SrcAddress, DstAddress, DataLength); 475:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 476:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear all interrupt flags at correct offset within the register */ 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = 0x3FU << hdma->StreamIndex; 478:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 479:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Enable Common interrupts*/ 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR |= DMA_IT_TC | DMA_IT_TE | DMA_IT_DME; 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR |= DMA_IT_FE; 482:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferHalfCpltCallback != NULL) 484:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR |= DMA_IT_HT; 486:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 487:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 488:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Enable the Peripheral */ ARM GAS /tmp/ccwgRvGR.s page 10 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_ENABLE(hdma); 490:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 491:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 492:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 493:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process unlocked */ 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 495:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 496:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Return error status */ 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_BUSY; 498:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 499:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 500:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return status; 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 502:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 503:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 504:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Aborts the DMA Transfer. 505:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 506:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 507:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * 508:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @note After disabling a DMA Stream, a check for wait until the DMA Stream is 509:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * effectively disabled is added. If a Stream is disabled 510:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * while a data transfer is ongoing, the current data will be transferred 511:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * and the Stream will be effectively disabled only after the transfer of 512:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * this single data is finished. 513:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status 514:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 515:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Abort(DMA_HandleTypeDef *hdma) 516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 517:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* calculate DMA base and stream number */ 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; 519:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tickstart = HAL_GetTick(); 521:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->State != HAL_DMA_STATE_BUSY) 523:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; 525:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 526:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */ 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 528:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR; 530:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 531:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 532:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 533:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable all the transfer interrupts */ 534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME); 535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR &= ~(DMA_IT_FE); 536:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL)) 538:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_HT); 540:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 541:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 542:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the stream */ 543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma); 544:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 545:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check if the DMA Stream is effectively disabled */ ARM GAS /tmp/ccwgRvGR.s page 11 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** while((hdma->Instance->CR & DMA_SxCR_EN) != RESET) 547:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 548:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check for the Timeout */ 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((HAL_GetTick() - tickstart ) > HAL_TIMEOUT_DMA_ABORT) 550:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 551:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */ 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; 553:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 554:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */ 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 556:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 557:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */ 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_TIMEOUT; 559:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_TIMEOUT; 561:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 562:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 563:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 564:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear all interrupt flags at correct offset within the register */ 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = 0x3FU << hdma->StreamIndex; 566:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 567:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */ 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 569:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 570:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state*/ 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; 572:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 573:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_OK; 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 575:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 576:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 577:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Aborts the DMA Transfer in Interrupt mode. 578:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 579:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 580:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status 581:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 582:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_Abort_IT(DMA_HandleTypeDef *hdma) 583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->State != HAL_DMA_STATE_BUSY) 585:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR; 588:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 589:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 590:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 591:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Set Abort State */ 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_ABORT; 593:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 594:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the stream */ 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma); 596:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 597:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_OK; 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 600:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 601:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 602:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Polling for transfer complete. ARM GAS /tmp/ccwgRvGR.s page 12 603:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 604:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 605:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param CompleteLevel Specifies the DMA level complete. 606:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @note The polling mode is kept in this version for legacy. it is recommanded to use the IT mo 607:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * This model could be used for debug purpose. 608:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @note The HAL_DMA_PollForTransfer API cannot be used in circular and double buffering mode (a 609:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param Timeout Timeout duration. 610:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status 611:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 612:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_PollForTransfer(DMA_HandleTypeDef *hdma, HAL_DMA_LevelCompleteTypeDef Com 613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 614:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; 615:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t mask_cpltlevel; 616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tickstart = HAL_GetTick(); 617:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmpisr; 618:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 619:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* calculate DMA base and stream number */ 620:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs; 621:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(HAL_DMA_STATE_BUSY != hdma->State) 623:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 624:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* No transfer ongoing */ 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NO_XFER; 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR; 628:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 629:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 630:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Polling mode not supported in circular mode and double buffering mode */ 631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((hdma->Instance->CR & DMA_SxCR_CIRC) != RESET) 632:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_NOT_SUPPORTED; 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR; 635:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 636:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 637:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get the level transfer complete flag */ 638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(CompleteLevel == HAL_DMA_FULL_TRANSFER) 639:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 640:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer Complete flag */ 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** mask_cpltlevel = DMA_FLAG_TCIF0_4 << hdma->StreamIndex; 642:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 643:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 644:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 645:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Half Transfer Complete flag */ 646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** mask_cpltlevel = DMA_FLAG_HTIF0_4 << hdma->StreamIndex; 647:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 648:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; 650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmpisr = regs->ISR; 651:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** while(((tmpisr & mask_cpltlevel) == RESET) && ((hdma->ErrorCode & HAL_DMA_ERROR_TE) == RESET)) 653:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 654:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Check for the Timeout (Not applicable in circular mode)*/ 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(Timeout != HAL_MAX_DELAY) 656:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((Timeout == 0U)||((HAL_GetTick() - tickstart ) > Timeout)) 658:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 659:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */ ARM GAS /tmp/ccwgRvGR.s page 13 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode = HAL_DMA_ERROR_TIMEOUT; 661:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 662:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */ 663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 664:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 665:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */ 666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; 667:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_TIMEOUT; 669:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 670:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 671:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 672:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get the ISR register value */ 673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmpisr = regs->ISR; 674:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET) 676:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 677:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */ 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_TE; 679:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 680:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the transfer error flag */ 681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_TEIF0_4 << hdma->StreamIndex; 682:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 683:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((tmpisr & (DMA_FLAG_FEIF0_4 << hdma->StreamIndex)) != RESET) 685:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 686:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */ 687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_FE; 688:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 689:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the FIFO error flag */ 690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_FEIF0_4 << hdma->StreamIndex; 691:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 692:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((tmpisr & (DMA_FLAG_DMEIF0_4 << hdma->StreamIndex)) != RESET) 694:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 695:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */ 696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_DME; 697:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 698:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the Direct Mode error flag */ 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_DMEIF0_4 << hdma->StreamIndex; 700:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 701:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 702:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->ErrorCode != HAL_DMA_ERROR_NONE) 704:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != RESET) 706:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_DMA_Abort(hdma); 708:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 709:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the half transfer and transfer complete flags */ 710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = (DMA_FLAG_HTIF0_4 | DMA_FLAG_TCIF0_4) << hdma->StreamIndex; 711:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 712:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */ 713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 714:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 715:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */ 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State= HAL_DMA_STATE_READY; ARM GAS /tmp/ccwgRvGR.s page 14 717:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR; 719:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 720:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 721:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 722:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Get the level transfer complete flag */ 723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(CompleteLevel == HAL_DMA_FULL_TRANSFER) 724:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 725:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the half transfer and transfer complete flags */ 726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = (DMA_FLAG_HTIF0_4 | DMA_FLAG_TCIF0_4) << hdma->StreamIndex; 727:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 728:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */ 729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 730:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; 732:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 733:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 734:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 735:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the half transfer and transfer complete flags */ 736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = (DMA_FLAG_HTIF0_4) << hdma->StreamIndex; 737:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 738:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return status; 740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 741:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 742:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 743:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Handles DMA interrupt request. 744:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 745:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 746:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval None 747:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 748:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** void HAL_DMA_IRQHandler(DMA_HandleTypeDef *hdma) 749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 750:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmpisr; 751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __IO uint32_t count = 0U; 752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t timeout = SystemCoreClock / 9600U; 753:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 754:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* calculate DMA base and stream number */ 755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs = (DMA_Base_Registers *)hdma->StreamBaseAddress; 756:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmpisr = regs->ISR; 758:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 759:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer Error Interrupt management ***************************************/ 760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((tmpisr & (DMA_FLAG_TEIF0_4 << hdma->StreamIndex)) != RESET) 761:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TE) != RESET) 763:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 764:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the transfer error interrupt */ 765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_TE); 766:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 767:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the transfer error flag */ 768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_TEIF0_4 << hdma->StreamIndex; 769:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 770:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */ 771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_TE; 772:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 773:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } ARM GAS /tmp/ccwgRvGR.s page 15 774:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* FIFO Error Interrupt management ******************************************/ 775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((tmpisr & (DMA_FLAG_FEIF0_4 << hdma->StreamIndex)) != RESET) 776:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_FE) != RESET) 778:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 779:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the FIFO error flag */ 780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_FEIF0_4 << hdma->StreamIndex; 781:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 782:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */ 783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_FE; 784:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 785:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 786:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Direct Mode Error Interrupt management ***********************************/ 787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((tmpisr & (DMA_FLAG_DMEIF0_4 << hdma->StreamIndex)) != RESET) 788:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_DME) != RESET) 790:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 791:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the direct mode error flag */ 792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_DMEIF0_4 << hdma->StreamIndex; 793:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 794:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Update error code */ 795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->ErrorCode |= HAL_DMA_ERROR_DME; 796:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 797:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 798:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Half Transfer Complete Interrupt management ******************************/ 799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((tmpisr & (DMA_FLAG_HTIF0_4 << hdma->StreamIndex)) != RESET) 800:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_HT) != RESET) 802:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 803:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the half transfer complete flag */ 804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_HTIF0_4 << hdma->StreamIndex; 805:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 806:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Multi_Buffering mode enabled */ 807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET) 808:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 809:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Current memory buffer used is Memory 0 */ 810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->Instance->CR & DMA_SxCR_CT) == RESET) 811:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferHalfCpltCallback != NULL) 813:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 814:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Half transfer callback */ 815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback(hdma); 816:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 817:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 818:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Current memory buffer used is Memory 1 */ 819:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 820:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferM1HalfCpltCallback != NULL) 822:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 823:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Half transfer callback */ 824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback(hdma); 825:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 826:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 827:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 828:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 829:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 830:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the half transfer interrupt if the DMA mode is not CIRCULAR */ ARM GAS /tmp/ccwgRvGR.s page 16 831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET) 832:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 833:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the half transfer interrupt */ 834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_HT); 835:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 836:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferHalfCpltCallback != NULL) 838:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 839:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Half transfer callback */ 840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback(hdma); 841:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 842:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 843:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 844:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 845:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer Complete Interrupt management ***********************************/ 846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((tmpisr & (DMA_FLAG_TCIF0_4 << hdma->StreamIndex)) != RESET) 847:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(__HAL_DMA_GET_IT_SOURCE(hdma, DMA_IT_TC) != RESET) 849:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 850:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear the transfer complete flag */ 851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = DMA_FLAG_TCIF0_4 << hdma->StreamIndex; 852:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(HAL_DMA_STATE_ABORT == hdma->State) 854:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 855:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable all the transfer interrupts */ 856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_TC | DMA_IT_TE | DMA_IT_DME); 857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR &= ~(DMA_IT_FE); 858:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->XferHalfCpltCallback != NULL) || (hdma->XferM1HalfCpltCallback != NULL)) 860:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_HT); 862:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 863:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 864:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear all interrupt flags at correct offset within the register */ 865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** regs->IFCR = 0x3FU << hdma->StreamIndex; 866:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 867:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */ 868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 869:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 870:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */ 871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; 872:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferAbortCallback != NULL) 874:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback(hdma); 876:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 877:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return; 878:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 879:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(((hdma->Instance->CR) & (uint32_t)(DMA_SxCR_DBM)) != RESET) 881:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 882:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Current memory buffer used is Memory 0 */ 883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->Instance->CR & DMA_SxCR_CT) == RESET) 884:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferM1CpltCallback != NULL) 886:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 887:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer complete Callback for memory1 */ ARM GAS /tmp/ccwgRvGR.s page 17 888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback(hdma); 889:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 890:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 891:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Current memory buffer used is Memory 1 */ 892:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 893:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferCpltCallback != NULL) 895:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 896:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer complete Callback for memory0 */ 897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferCpltCallback(hdma); 898:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 899:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 900:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 901:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the transfer complete interrupt if the DMA mode is not CIRCULAR */ 902:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 903:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->Instance->CR & DMA_SxCR_CIRC) == RESET) 905:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 906:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the transfer complete interrupt */ 907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= ~(DMA_IT_TC); 908:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 909:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */ 910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 911:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 912:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */ 913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; 914:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 915:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferCpltCallback != NULL) 917:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 918:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer complete callback */ 919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferCpltCallback(hdma); 920:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 921:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 922:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 923:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 924:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 925:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* manage error case */ 926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->ErrorCode != HAL_DMA_ERROR_NONE) 927:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->ErrorCode & HAL_DMA_ERROR_TE) != RESET) 929:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_ABORT; 931:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 932:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Disable the stream */ 933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_DMA_DISABLE(hdma); 934:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 935:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** do 936:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if (++count > timeout) 938:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 939:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 940:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 941:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** while((hdma->Instance->CR & DMA_SxCR_EN) != RESET); 943:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 944:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process Unlocked */ ARM GAS /tmp/ccwgRvGR.s page 18 945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 946:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 947:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Change the DMA state */ 948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->State = HAL_DMA_STATE_READY; 949:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 950:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->XferErrorCallback != NULL) 952:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 953:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Transfer error callback */ 954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback(hdma); 955:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 956:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 958:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 959:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 960:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Register callbacks 961:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 962:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 963:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param CallbackID User Callback identifer 964:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * a DMA_HandleTypeDef structure as parameter. 965:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param pCallback pointer to private callbacsk function which has pointer to 966:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * a DMA_HandleTypeDef structure as parameter. 967:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status 968:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 969:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_RegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef Callb 970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 971:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; 973:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 974:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process locked */ 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_LOCK(hdma); 976:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(HAL_DMA_STATE_READY == hdma->State) 978:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** switch (CallbackID) 980:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 981:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_CPLT_CB_ID: 982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferCpltCallback = pCallback; 983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 984:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 985:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_HALFCPLT_CB_ID: 986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback = pCallback; 987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 988:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 989:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_M1CPLT_CB_ID: 990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback = pCallback; 991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 992:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 993:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_M1HALFCPLT_CB_ID: 994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback = pCallback; 995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 996:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 997:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_ERROR_CB_ID: 998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback = pCallback; 999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1000:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1001:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_ABORT_CB_ID: ARM GAS /tmp/ccwgRvGR.s page 19 1002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback = pCallback; 1003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1004:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1005:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** default: 1006:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1007:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1008:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1009:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 1010:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1011:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Return error status */ 1012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR; 1013:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1014:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1015:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Release Lock */ 1016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 1017:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return status; 1019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1020:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1021:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 1022:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief UnRegister callbacks 1023:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 1024:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 1025:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param CallbackID User Callback identifer 1026:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * a HAL_DMA_CallbackIDTypeDef ENUM as parameter. 1027:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status 1028:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 1029:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef HAL_DMA_UnRegisterCallback(DMA_HandleTypeDef *hdma, HAL_DMA_CallbackIDTypeDef Cal 1030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1031:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; 1032:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1033:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Process locked */ 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_LOCK(hdma); 1035:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(HAL_DMA_STATE_READY == hdma->State) 1037:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** switch (CallbackID) 1039:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1040:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_CPLT_CB_ID: 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferCpltCallback = NULL; 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1043:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1044:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_HALFCPLT_CB_ID: 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL; 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1047:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1048:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_M1CPLT_CB_ID: 1049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback = NULL; 1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1051:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1052:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_M1HALFCPLT_CB_ID: 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback = NULL; 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1055:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1056:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_ERROR_CB_ID: 1057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback = NULL; 1058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; ARM GAS /tmp/ccwgRvGR.s page 20 1059:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1060:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_ABORT_CB_ID: 1061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback = NULL; 1062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1063:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1064:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case HAL_DMA_XFER_ALL_CB_ID: 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferCpltCallback = NULL; 1066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL; 1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback = NULL; 1068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback = NULL; 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback = NULL; 1070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback = NULL; 1071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1072:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1073:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** default: 1074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR; 1075:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1076:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1077:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1078:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 1079:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR; 1081:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1082:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1083:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Release Lock */ 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 1085:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return status; 1087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1088:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1089:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 1090:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @} 1091:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 1092:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1093:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Exported_Functions_Group3 1094:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * 1095:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @verbatim 1096:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** =============================================================================== 1097:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ##### State and Errors functions ##### 1098:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** =============================================================================== 1099:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** [..] 1100:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** This subsection provides functions allowing to 1101:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Check the DMA state 1102:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** (+) Get error code 1103:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1104:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** @endverbatim 1105:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{ 1106:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 1107:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1108:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 1109:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Returns the DMA state. 1110:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 1111:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 1112:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL state 1113:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 1114:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_DMA_StateTypeDef HAL_DMA_GetState(DMA_HandleTypeDef *hdma) 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { ARM GAS /tmp/ccwgRvGR.s page 21 1116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return hdma->State; 1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1118:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1119:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 1120:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Return the DMA error code 1121:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 1122:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 1123:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval DMA Error Code 1124:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 1125:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t HAL_DMA_GetError(DMA_HandleTypeDef *hdma) 1126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return hdma->ErrorCode; 1128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1129:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1130:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 1131:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @} 1132:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 1133:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1134:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 1135:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @} 1136:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 1137:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1138:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** @addtogroup DMA_Private_Functions 1139:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @{ 1140:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 1141:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1142:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 1143:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Sets the DMA Transfer parameter. 1144:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 1145:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 1146:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param SrcAddress The source memory Buffer address 1147:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param DstAddress The destination memory Buffer address 1148:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param DataLength The length of data to be transferred from source to destination 1149:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status 1150:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 1151:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static void DMA_SetConfig(DMA_HandleTypeDef *hdma, uint32_t SrcAddress, uint32_t DstAddress, uint32 1152:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 27 .loc 1 1152 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: 33 0000 30B4 push {r4, r5} 34 .LCFI0: 35 .cfi_def_cfa_offset 8 36 .cfi_offset 4, -8 37 .cfi_offset 5, -4 1153:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Clear DBM bit */ 1154:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->CR &= (uint32_t)(~DMA_SxCR_DBM); 38 .loc 1 1154 0 39 0002 0568 ldr r5, [r0] 40 0004 2C68 ldr r4, [r5] 41 0006 24F48024 bic r4, r4, #262144 42 000a 2C60 str r4, [r5] 1155:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1156:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure DMA Stream data length */ ARM GAS /tmp/ccwgRvGR.s page 22 1157:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->NDTR = DataLength; 43 .loc 1 1157 0 44 000c 0468 ldr r4, [r0] 45 000e 6360 str r3, [r4, #4] 1158:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1159:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Memory to Peripheral */ 1160:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if((hdma->Init.Direction) == DMA_MEMORY_TO_PERIPH) 46 .loc 1 1160 0 47 0010 8368 ldr r3, [r0, #8] 48 .LVL1: 49 0012 402B cmp r3, #64 50 0014 05D0 beq .L5 1161:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1162:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure DMA Stream destination address */ 1163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->PAR = DstAddress; 1164:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1165:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure DMA Stream source address */ 1166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->M0AR = SrcAddress; 1167:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1168:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Peripheral to Memory */ 1169:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 1170:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1171:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure DMA Stream source address */ 1172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->PAR = SrcAddress; 51 .loc 1 1172 0 52 0016 0368 ldr r3, [r0] 53 0018 9960 str r1, [r3, #8] 54 .LVL2: 1173:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Configure DMA Stream destination address */ 1175:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->M0AR = DstAddress; 55 .loc 1 1175 0 56 001a 0368 ldr r3, [r0] 57 001c DA60 str r2, [r3, #12] 58 .L1: 1176:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1177:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 59 .loc 1 1177 0 60 001e 30BC pop {r4, r5} 61 .LCFI1: 62 .cfi_remember_state 63 .cfi_restore 5 64 .cfi_restore 4 65 .cfi_def_cfa_offset 0 66 0020 7047 bx lr 67 .LVL3: 68 .L5: 69 .LCFI2: 70 .cfi_restore_state 1163:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 71 .loc 1 1163 0 72 0022 0368 ldr r3, [r0] 73 0024 9A60 str r2, [r3, #8] 74 .LVL4: 1166:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 75 .loc 1 1166 0 76 0026 0368 ldr r3, [r0] ARM GAS /tmp/ccwgRvGR.s page 23 77 0028 D960 str r1, [r3, #12] 78 002a F8E7 b .L1 79 .cfi_endproc 80 .LFE142: 82 .section .text.DMA_CalcBaseAndBitshift,"ax",%progbits 83 .align 1 84 .syntax unified 85 .thumb 86 .thumb_func 87 .fpu fpv4-sp-d16 89 DMA_CalcBaseAndBitshift: 90 .LFB143: 1178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1179:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 1180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Returns the DMA Stream base address depending on stream number 1181:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 1182:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 1183:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval Stream base address 1184:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 1185:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static uint32_t DMA_CalcBaseAndBitshift(DMA_HandleTypeDef *hdma) 1186:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 91 .loc 1 1186 0 92 .cfi_startproc 93 @ args = 0, pretend = 0, frame = 0 94 @ frame_needed = 0, uses_anonymous_args = 0 95 @ link register save eliminated. 96 .LVL5: 1187:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t stream_number = (((uint32_t)hdma->Instance & 0xFFU) - 16U) / 24U; 97 .loc 1 1187 0 98 0000 0268 ldr r2, [r0] 99 0002 D3B2 uxtb r3, r2 100 0004 103B subs r3, r3, #16 101 0006 0B49 ldr r1, .L10 102 0008 A1FB0313 umull r1, r3, r1, r3 103 000c 1B09 lsrs r3, r3, #4 104 .LVL6: 1188:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1189:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* lookup table for necessary bitshift of flags within status registers */ 1190:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static const uint8_t flagBitshiftOffset[8U] = {0U, 6U, 16U, 22U, 0U, 6U, 16U, 22U}; 1191:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->StreamIndex = flagBitshiftOffset[stream_number]; 105 .loc 1 1191 0 106 000e 0A49 ldr r1, .L10+4 107 0010 C95C ldrb r1, [r1, r3] @ zero_extendqisi2 108 0012 C165 str r1, [r0, #92] 1192:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1193:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if (stream_number > 3U) 109 .loc 1 1193 0 110 0014 032B cmp r3, #3 111 0016 06D8 bhi .L9 1194:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1195:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* return pointer to HISR and HIFCR */ 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->StreamBaseAddress = (((uint32_t)hdma->Instance & (uint32_t)(~0x3FFU)) + 4U); 1197:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1198:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 1199:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1200:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* return pointer to LISR and LIFCR */ 1201:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->StreamBaseAddress = ((uint32_t)hdma->Instance & (uint32_t)(~0x3FFU)); ARM GAS /tmp/ccwgRvGR.s page 24 112 .loc 1 1201 0 113 0018 22F47F72 bic r2, r2, #1020 114 001c 22F00302 bic r2, r2, #3 115 0020 8265 str r2, [r0, #88] 116 .L8: 1202:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1203:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return hdma->StreamBaseAddress; 1205:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 117 .loc 1 1205 0 118 0022 806D ldr r0, [r0, #88] 119 .LVL7: 120 0024 7047 bx lr 121 .LVL8: 122 .L9: 1196:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 123 .loc 1 1196 0 124 0026 22F47F72 bic r2, r2, #1020 125 002a 22F00302 bic r2, r2, #3 126 002e 0432 adds r2, r2, #4 127 0030 8265 str r2, [r0, #88] 128 0032 F6E7 b .L8 129 .L11: 130 .align 2 131 .L10: 132 0034 ABAAAAAA .word -1431655765 133 0038 00000000 .word .LANCHOR0 134 .cfi_endproc 135 .LFE143: 137 .section .text.DMA_CheckFifoParam,"ax",%progbits 138 .align 1 139 .syntax unified 140 .thumb 141 .thumb_func 142 .fpu fpv4-sp-d16 144 DMA_CheckFifoParam: 145 .LFB144: 1206:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /** 1208:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @brief Check compatibility between FIFO threshold level and size of the memory burst 1209:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @param hdma pointer to a DMA_HandleTypeDef structure that contains 1210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * the configuration information for the specified DMA Stream. 1211:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** * @retval HAL status 1212:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** */ 1213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** static HAL_StatusTypeDef DMA_CheckFifoParam(DMA_HandleTypeDef *hdma) 1214:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 146 .loc 1 1214 0 147 .cfi_startproc 148 @ args = 0, pretend = 0, frame = 0 149 @ frame_needed = 0, uses_anonymous_args = 0 150 @ link register save eliminated. 151 .LVL9: 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; 1216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold; 152 .loc 1 1216 0 153 0000 836A ldr r3, [r0, #40] 154 .LVL10: ARM GAS /tmp/ccwgRvGR.s page 25 1217:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1218:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Memory Data size equal to Byte */ 1219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->Init.MemDataAlignment == DMA_MDATAALIGN_BYTE) 155 .loc 1 1219 0 156 0002 8269 ldr r2, [r0, #24] 157 0004 92B9 cbnz r2, .L13 1220:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1221:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** switch (tmp) 158 .loc 1 1221 0 159 0006 012B cmp r3, #1 160 0008 0AD0 beq .L15 161 000a 1BB1 cbz r3, .L16 162 000c 022B cmp r3, #2 163 000e 01D0 beq .L16 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold; 164 .loc 1 1215 0 165 0010 0020 movs r0, #0 166 .LVL11: 167 0012 7047 bx lr 168 .LVL12: 169 .L16: 1222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1223:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_1QUARTERFULL: 1224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_3QUARTERSFULL: 1225:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((hdma->Init.MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1) 170 .loc 1 1225 0 171 0014 C36A ldr r3, [r0, #44] 172 .LVL13: 173 0016 13F0807F tst r3, #16777216 174 001a 2CD1 bne .L25 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold; 175 .loc 1 1215 0 176 001c 0020 movs r0, #0 177 .LVL14: 178 001e 7047 bx lr 179 .LVL15: 180 .L15: 1226:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR; 1228:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1230:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_HALFFULL: 1231:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if (hdma->Init.MemBurst == DMA_MBURST_INC16) 181 .loc 1 1231 0 182 0020 C36A ldr r3, [r0, #44] 183 .LVL16: 184 0022 B3F1C07F cmp r3, #25165824 185 0026 28D0 beq .L26 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold; 186 .loc 1 1215 0 187 0028 0020 movs r0, #0 188 .LVL17: 189 002a 7047 bx lr 190 .LVL18: 191 .L13: 1232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR; ARM GAS /tmp/ccwgRvGR.s page 26 1234:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1235:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1236:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_FULL: 1237:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** default: 1239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1242:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1243:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Memory Data size equal to Half-Word */ 1244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else if (hdma->Init.MemDataAlignment == DMA_MDATAALIGN_HALFWORD) 192 .loc 1 1244 0 193 002c B2F5005F cmp r2, #8192 194 0030 05D0 beq .L33 1245:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** switch (tmp) 1247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1248:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_1QUARTERFULL: 1249:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_3QUARTERSFULL: 1250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR; 1251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1252:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_HALFFULL: 1253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((hdma->Init.MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1) 1254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR; 1256:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1258:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_FULL: 1259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if (hdma->Init.MemBurst == DMA_MBURST_INC16) 1260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR; 1262:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1264:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** default: 1265:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1267:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1268:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1269:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* Memory Data size equal to Word */ 1270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** else 1271:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** switch (tmp) 195 .loc 1 1272 0 196 0032 022B cmp r3, #2 197 0034 29D9 bls .L30 198 0036 032B cmp r3, #3 199 0038 15D0 beq .L23 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold; 200 .loc 1 1215 0 201 003a 0020 movs r0, #0 202 .LVL19: 203 003c 7047 bx lr 204 .LVL20: 205 .L33: 1246:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 206 .loc 1 1246 0 207 003e 032B cmp r3, #3 ARM GAS /tmp/ccwgRvGR.s page 27 208 0040 03D8 bhi .L18 209 0042 DFE803F0 tbb [pc, r3] 210 .L19: 211 0046 1C .byte (.L27-.L19)/2 212 0047 04 .byte (.L20-.L19)/2 213 0048 1C .byte (.L27-.L19)/2 214 0049 0A .byte (.L21-.L19)/2 215 .p2align 1 216 .L18: 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold; 217 .loc 1 1215 0 218 004a 0020 movs r0, #0 219 .LVL21: 220 004c 7047 bx lr 221 .LVL22: 222 .L20: 1253:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 223 .loc 1 1253 0 224 004e C36A ldr r3, [r0, #44] 225 .LVL23: 226 0050 13F0807F tst r3, #16777216 227 0054 15D1 bne .L28 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold; 228 .loc 1 1215 0 229 0056 0020 movs r0, #0 230 .LVL24: 231 0058 7047 bx lr 232 .LVL25: 233 .L21: 1259:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 234 .loc 1 1259 0 235 005a C36A ldr r3, [r0, #44] 236 .LVL26: 237 005c B3F1C07F cmp r3, #25165824 238 0060 11D0 beq .L29 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold; 239 .loc 1 1215 0 240 0062 0020 movs r0, #0 241 .LVL27: 242 0064 7047 bx lr 243 .LVL28: 244 .L23: 1273:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1274:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_1QUARTERFULL: 1275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_HALFFULL: 1276:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_3QUARTERSFULL: 1277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR; 1278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1279:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** case DMA_FIFO_THRESHOLD_FULL: 1280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if ((hdma->Init.MemBurst & DMA_SxCR_MBURST_1) == DMA_SxCR_MBURST_1) 245 .loc 1 1280 0 246 0066 C36A ldr r3, [r0, #44] 247 .LVL29: 248 0068 13F0807F tst r3, #16777216 249 006c 01D0 beq .L34 1281:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1282:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** status = HAL_ERROR; ARM GAS /tmp/ccwgRvGR.s page 28 250 .loc 1 1282 0 251 006e 0120 movs r0, #1 252 .LVL30: 1283:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1284:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1285:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** default: 1286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1287:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1288:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1289:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return status; 1291:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 253 .loc 1 1291 0 254 0070 7047 bx lr 255 .LVL31: 256 .L34: 1215:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = hdma->Init.FIFOThreshold; 257 .loc 1 1215 0 258 0072 0020 movs r0, #0 259 .LVL32: 260 0074 7047 bx lr 261 .LVL33: 262 .L25: 1227:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 263 .loc 1 1227 0 264 0076 0120 movs r0, #1 265 .LVL34: 266 0078 7047 bx lr 267 .LVL35: 268 .L26: 1233:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 269 .loc 1 1233 0 270 007a 0120 movs r0, #1 271 .LVL36: 272 007c 7047 bx lr 273 .LVL37: 274 .L27: 1250:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 275 .loc 1 1250 0 276 007e 0120 movs r0, #1 277 .LVL38: 278 0080 7047 bx lr 279 .LVL39: 280 .L28: 1255:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 281 .loc 1 1255 0 282 0082 0120 movs r0, #1 283 .LVL40: 284 0084 7047 bx lr 285 .LVL41: 286 .L29: 1261:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 287 .loc 1 1261 0 288 0086 0120 movs r0, #1 289 .LVL42: 290 0088 7047 bx lr 291 .LVL43: ARM GAS /tmp/ccwgRvGR.s page 29 292 .L30: 1277:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 293 .loc 1 1277 0 294 008a 0120 movs r0, #1 295 .LVL44: 296 008c 7047 bx lr 297 .cfi_endproc 298 .LFE144: 300 .section .text.HAL_DMA_Init,"ax",%progbits 301 .align 1 302 .global HAL_DMA_Init 303 .syntax unified 304 .thumb 305 .thumb_func 306 .fpu fpv4-sp-d16 308 HAL_DMA_Init: 309 .LFB130: 172:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmp = 0U; 310 .loc 1 172 0 311 .cfi_startproc 312 @ args = 0, pretend = 0, frame = 0 313 @ frame_needed = 0, uses_anonymous_args = 0 314 .LVL45: 315 0000 70B5 push {r4, r5, r6, lr} 316 .LCFI3: 317 .cfi_def_cfa_offset 16 318 .cfi_offset 4, -16 319 .cfi_offset 5, -12 320 .cfi_offset 6, -8 321 .cfi_offset 14, -4 322 0002 0446 mov r4, r0 323 .LVL46: 174:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs; 324 .loc 1 174 0 325 0004 FFF7FEFF bl HAL_GetTick 326 .LVL47: 178:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 327 .loc 1 178 0 328 0008 002C cmp r4, #0 329 000a 5DD0 beq .L41 330 000c 0546 mov r5, r0 204:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 331 .loc 1 204 0 332 000e 0023 movs r3, #0 333 0010 84F83430 strb r3, [r4, #52] 207:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 334 .loc 1 207 0 335 0014 0223 movs r3, #2 336 0016 84F83530 strb r3, [r4, #53] 210:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 337 .loc 1 210 0 338 001a 2268 ldr r2, [r4] 339 001c 1368 ldr r3, [r2] 340 001e 23F00103 bic r3, r3, #1 341 0022 1360 str r3, [r2] 342 .LVL48: 343 .L37: ARM GAS /tmp/ccwgRvGR.s page 30 213:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 344 .loc 1 213 0 345 0024 2368 ldr r3, [r4] 346 0026 1A68 ldr r2, [r3] 347 0028 12F0010F tst r2, #1 348 002c 0AD0 beq .L43 216:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 349 .loc 1 216 0 350 002e FFF7FEFF bl HAL_GetTick 351 .LVL49: 352 0032 401B subs r0, r0, r5 353 0034 0528 cmp r0, #5 354 0036 F5D9 bls .L37 219:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 355 .loc 1 219 0 356 0038 2023 movs r3, #32 357 003a 6365 str r3, [r4, #84] 222:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 358 .loc 1 222 0 359 003c 0320 movs r0, #3 360 003e 84F83500 strb r0, [r4, #53] 224:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 361 .loc 1 224 0 362 0042 70BD pop {r4, r5, r6, pc} 363 .LVL50: 364 .L43: 229:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 365 .loc 1 229 0 366 0044 1A68 ldr r2, [r3] 367 .LVL51: 232:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_SxCR_PL | DMA_SxCR_MSIZE | DMA_SxCR_PSIZE | \ 368 .loc 1 232 0 369 0046 2149 ldr r1, .L46 370 0048 1140 ands r1, r1, r2 371 .LVL52: 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc | 372 .loc 1 238 0 373 004a 6268 ldr r2, [r4, #4] 374 004c A068 ldr r0, [r4, #8] 375 004e 0243 orrs r2, r2, r0 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | 376 .loc 1 239 0 377 0050 E068 ldr r0, [r4, #12] 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc | 378 .loc 1 238 0 379 0052 0243 orrs r2, r2, r0 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | 380 .loc 1 239 0 381 0054 2069 ldr r0, [r4, #16] 382 0056 0243 orrs r2, r2, r0 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority; 383 .loc 1 240 0 384 0058 6069 ldr r0, [r4, #20] 239:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphDataAlignment | hdma->Init.MemDataAlignment | 385 .loc 1 239 0 386 005a 0243 orrs r2, r2, r0 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority; ARM GAS /tmp/ccwgRvGR.s page 31 387 .loc 1 240 0 388 005c A069 ldr r0, [r4, #24] 389 005e 0243 orrs r2, r2, r0 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 390 .loc 1 241 0 391 0060 E069 ldr r0, [r4, #28] 240:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.Mode | hdma->Init.Priority; 392 .loc 1 240 0 393 0062 0243 orrs r2, r2, r0 241:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 394 .loc 1 241 0 395 0064 206A ldr r0, [r4, #32] 396 0066 0243 orrs r2, r2, r0 238:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Init.PeriphInc | hdma->Init.MemInc | 397 .loc 1 238 0 398 0068 0A43 orrs r2, r2, r1 399 .LVL53: 244:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 400 .loc 1 244 0 401 006a 616A ldr r1, [r4, #36] 402 006c 0429 cmp r1, #4 403 006e 16D0 beq .L44 404 .L39: 251:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 405 .loc 1 251 0 406 0070 1A60 str r2, [r3] 254:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 407 .loc 1 254 0 408 0072 2668 ldr r6, [r4] 409 0074 7569 ldr r5, [r6, #20] 410 .LVL54: 257:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 411 .loc 1 257 0 412 0076 25F00705 bic r5, r5, #7 413 .LVL55: 260:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 414 .loc 1 260 0 415 007a 636A ldr r3, [r4, #36] 416 007c 1D43 orrs r5, r5, r3 417 .LVL56: 263:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 418 .loc 1 263 0 419 007e 042B cmp r3, #4 420 0080 12D0 beq .L45 421 .L40: 286:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 422 .loc 1 286 0 423 0082 7561 str r5, [r6, #20] 290:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 424 .loc 1 290 0 425 0084 2046 mov r0, r4 426 0086 FFF7FEFF bl DMA_CalcBaseAndBitshift 427 .LVL57: 293:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 428 .loc 1 293 0 429 008a E26D ldr r2, [r4, #92] 430 008c 3F23 movs r3, #63 ARM GAS /tmp/ccwgRvGR.s page 32 431 008e 9340 lsls r3, r3, r2 432 0090 8360 str r3, [r0, #8] 296:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 433 .loc 1 296 0 434 0092 0020 movs r0, #0 435 .LVL58: 436 0094 6065 str r0, [r4, #84] 299:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 437 .loc 1 299 0 438 0096 0123 movs r3, #1 439 0098 84F83530 strb r3, [r4, #53] 301:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 440 .loc 1 301 0 441 009c 70BD pop {r4, r5, r6, pc} 442 .LVL59: 443 .L44: 247:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 444 .loc 1 247 0 445 009e E16A ldr r1, [r4, #44] 446 00a0 206B ldr r0, [r4, #48] 447 00a2 0143 orrs r1, r1, r0 448 00a4 0A43 orrs r2, r2, r1 449 .LVL60: 450 00a6 E3E7 b .L39 451 .LVL61: 452 .L45: 266:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 453 .loc 1 266 0 454 00a8 A36A ldr r3, [r4, #40] 455 00aa 1D43 orrs r5, r5, r3 456 .LVL62: 270:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 457 .loc 1 270 0 458 00ac E36A ldr r3, [r4, #44] 459 00ae 002B cmp r3, #0 460 00b0 E7D0 beq .L40 272:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 461 .loc 1 272 0 462 00b2 2046 mov r0, r4 463 00b4 FFF7FEFF bl DMA_CheckFifoParam 464 .LVL63: 465 00b8 0028 cmp r0, #0 466 00ba E2D0 beq .L40 275:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 467 .loc 1 275 0 468 00bc 4023 movs r3, #64 469 00be 6365 str r3, [r4, #84] 278:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 470 .loc 1 278 0 471 00c0 0120 movs r0, #1 472 00c2 84F83500 strb r0, [r4, #53] 280:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 473 .loc 1 280 0 474 00c6 70BD pop {r4, r5, r6, pc} 475 .LVL64: 476 .L41: 180:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } ARM GAS /tmp/ccwgRvGR.s page 33 477 .loc 1 180 0 478 00c8 0120 movs r0, #1 479 .LVL65: 302:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 480 .loc 1 302 0 481 00ca 70BD pop {r4, r5, r6, pc} 482 .LVL66: 483 .L47: 484 .align 2 485 .L46: 486 00cc 3F8010F0 .word -267354049 487 .cfi_endproc 488 .LFE130: 490 .section .text.HAL_DMA_DeInit,"ax",%progbits 491 .align 1 492 .global HAL_DMA_DeInit 493 .syntax unified 494 .thumb 495 .thumb_func 496 .fpu fpv4-sp-d16 498 HAL_DMA_DeInit: 499 .LFB131: 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs; 500 .loc 1 311 0 501 .cfi_startproc 502 @ args = 0, pretend = 0, frame = 0 503 @ frame_needed = 0, uses_anonymous_args = 0 504 .LVL67: 315:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 505 .loc 1 315 0 506 0000 0028 cmp r0, #0 507 0002 2ED0 beq .L50 311:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** DMA_Base_Registers *regs; 508 .loc 1 311 0 509 0004 38B5 push {r3, r4, r5, lr} 510 .LCFI4: 511 .cfi_def_cfa_offset 16 512 .cfi_offset 3, -16 513 .cfi_offset 4, -12 514 .cfi_offset 5, -8 515 .cfi_offset 14, -4 516 0006 0446 mov r4, r0 321:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 517 .loc 1 321 0 518 0008 90F83530 ldrb r3, [r0, #53] @ zero_extendqisi2 519 000c DBB2 uxtb r3, r3 520 000e 022B cmp r3, #2 521 0010 01D1 bne .L56 324:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 522 .loc 1 324 0 523 0012 0220 movs r0, #2 524 .LVL68: 375:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 525 .loc 1 375 0 526 0014 38BD pop {r3, r4, r5, pc} 527 .LVL69: 528 .L56: ARM GAS /tmp/ccwgRvGR.s page 34 331:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 529 .loc 1 331 0 530 0016 0268 ldr r2, [r0] 531 0018 1368 ldr r3, [r2] 532 001a 23F00103 bic r3, r3, #1 533 001e 1360 str r3, [r2] 334:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 534 .loc 1 334 0 535 0020 0368 ldr r3, [r0] 536 0022 0025 movs r5, #0 537 0024 1D60 str r5, [r3] 337:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 538 .loc 1 337 0 539 0026 0368 ldr r3, [r0] 540 0028 5D60 str r5, [r3, #4] 340:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 541 .loc 1 340 0 542 002a 0368 ldr r3, [r0] 543 002c 9D60 str r5, [r3, #8] 343:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 544 .loc 1 343 0 545 002e 0368 ldr r3, [r0] 546 0030 DD60 str r5, [r3, #12] 346:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 547 .loc 1 346 0 548 0032 0368 ldr r3, [r0] 549 0034 1D61 str r5, [r3, #16] 349:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 550 .loc 1 349 0 551 0036 0368 ldr r3, [r0] 552 0038 2122 movs r2, #33 553 003a 5A61 str r2, [r3, #20] 352:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 554 .loc 1 352 0 555 003c FFF7FEFF bl DMA_CalcBaseAndBitshift 556 .LVL70: 355:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL; 557 .loc 1 355 0 558 0040 E563 str r5, [r4, #60] 356:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback = NULL; 559 .loc 1 356 0 560 0042 2564 str r5, [r4, #64] 357:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback = NULL; 561 .loc 1 357 0 562 0044 6564 str r5, [r4, #68] 358:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback = NULL; 563 .loc 1 358 0 564 0046 A564 str r5, [r4, #72] 359:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback = NULL; 565 .loc 1 359 0 566 0048 E564 str r5, [r4, #76] 360:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 567 .loc 1 360 0 568 004a 2565 str r5, [r4, #80] 363:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 569 .loc 1 363 0 570 004c E26D ldr r2, [r4, #92] ARM GAS /tmp/ccwgRvGR.s page 35 571 004e 3F23 movs r3, #63 572 0050 9340 lsls r3, r3, r2 573 0052 8360 str r3, [r0, #8] 366:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 574 .loc 1 366 0 575 0054 6565 str r5, [r4, #84] 369:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 576 .loc 1 369 0 577 0056 84F83550 strb r5, [r4, #53] 372:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 578 .loc 1 372 0 579 005a 84F83450 strb r5, [r4, #52] 374:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 580 .loc 1 374 0 581 005e 2846 mov r0, r5 582 .LVL71: 583 0060 38BD pop {r3, r4, r5, pc} 584 .LVL72: 585 .L50: 586 .LCFI5: 587 .cfi_def_cfa_offset 0 588 .cfi_restore 3 589 .cfi_restore 4 590 .cfi_restore 5 591 .cfi_restore 14 317:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 592 .loc 1 317 0 593 0062 0120 movs r0, #1 594 .LVL73: 595 0064 7047 bx lr 596 .cfi_endproc 597 .LFE131: 599 .section .text.HAL_DMA_Start,"ax",%progbits 600 .align 1 601 .global HAL_DMA_Start 602 .syntax unified 603 .thumb 604 .thumb_func 605 .fpu fpv4-sp-d16 607 HAL_DMA_Start: 608 .LFB132: 409:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; 609 .loc 1 409 0 610 .cfi_startproc 611 @ args = 0, pretend = 0, frame = 0 612 @ frame_needed = 0, uses_anonymous_args = 0 613 .LVL74: 614 0000 38B5 push {r3, r4, r5, lr} 615 .LCFI6: 616 .cfi_def_cfa_offset 16 617 .cfi_offset 3, -16 618 .cfi_offset 4, -12 619 .cfi_offset 5, -8 620 .cfi_offset 14, -4 621 .LVL75: 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 622 .loc 1 416 0 ARM GAS /tmp/ccwgRvGR.s page 36 623 0002 90F83440 ldrb r4, [r0, #52] @ zero_extendqisi2 624 0006 012C cmp r4, #1 625 0008 1CD0 beq .L60 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 626 .loc 1 416 0 is_stmt 0 discriminator 2 627 000a 0124 movs r4, #1 628 000c 80F83440 strb r4, [r0, #52] 418:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 629 .loc 1 418 0 is_stmt 1 discriminator 2 630 0010 90F83540 ldrb r4, [r0, #53] @ zero_extendqisi2 631 0014 E4B2 uxtb r4, r4 632 0016 012C cmp r4, #1 633 0018 04D0 beq .L62 435:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 634 .loc 1 435 0 635 001a 0023 movs r3, #0 636 .LVL76: 637 001c 80F83430 strb r3, [r0, #52] 638 .LVL77: 438:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 639 .loc 1 438 0 640 0020 0220 movs r0, #2 641 .LVL78: 642 0022 38BD pop {r3, r4, r5, pc} 643 .LVL79: 644 .L62: 645 0024 0546 mov r5, r0 421:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 646 .loc 1 421 0 647 0026 0220 movs r0, #2 648 .LVL80: 649 0028 85F83500 strb r0, [r5, #53] 424:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 650 .loc 1 424 0 651 002c 0024 movs r4, #0 652 002e 6C65 str r4, [r5, #84] 427:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 653 .loc 1 427 0 654 0030 2846 mov r0, r5 655 0032 FFF7FEFF bl DMA_SetConfig 656 .LVL81: 430:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 657 .loc 1 430 0 658 0036 2A68 ldr r2, [r5] 659 0038 1368 ldr r3, [r2] 660 003a 43F00103 orr r3, r3, #1 661 003e 1360 str r3, [r2] 410:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 662 .loc 1 410 0 663 0040 2046 mov r0, r4 664 0042 38BD pop {r3, r4, r5, pc} 665 .LVL82: 666 .L60: 416:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 667 .loc 1 416 0 668 0044 0220 movs r0, #2 669 .LVL83: ARM GAS /tmp/ccwgRvGR.s page 37 441:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 670 .loc 1 441 0 671 0046 38BD pop {r3, r4, r5, pc} 672 .cfi_endproc 673 .LFE132: 675 .section .text.HAL_DMA_Start_IT,"ax",%progbits 676 .align 1 677 .global HAL_DMA_Start_IT 678 .syntax unified 679 .thumb 680 .thumb_func 681 .fpu fpv4-sp-d16 683 HAL_DMA_Start_IT: 684 .LFB133: 453:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; 685 .loc 1 453 0 686 .cfi_startproc 687 @ args = 0, pretend = 0, frame = 0 688 @ frame_needed = 0, uses_anonymous_args = 0 689 .LVL84: 690 0000 38B5 push {r3, r4, r5, lr} 691 .LCFI7: 692 .cfi_def_cfa_offset 16 693 .cfi_offset 3, -16 694 .cfi_offset 4, -12 695 .cfi_offset 5, -8 696 .cfi_offset 14, -4 697 .LVL85: 457:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 698 .loc 1 457 0 699 0002 856D ldr r5, [r0, #88] 700 .LVL86: 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 701 .loc 1 463 0 702 0004 90F83440 ldrb r4, [r0, #52] @ zero_extendqisi2 703 0008 012C cmp r4, #1 704 000a 31D0 beq .L67 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 705 .loc 1 463 0 is_stmt 0 discriminator 2 706 000c 0124 movs r4, #1 707 000e 80F83440 strb r4, [r0, #52] 465:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 708 .loc 1 465 0 is_stmt 1 discriminator 2 709 0012 90F83540 ldrb r4, [r0, #53] @ zero_extendqisi2 710 0016 E4B2 uxtb r4, r4 711 0018 012C cmp r4, #1 712 001a 04D0 beq .L69 494:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 713 .loc 1 494 0 714 001c 0023 movs r3, #0 715 .LVL87: 716 001e 80F83430 strb r3, [r0, #52] 717 .LVL88: 497:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 718 .loc 1 497 0 719 0022 0220 movs r0, #2 720 .LVL89: ARM GAS /tmp/ccwgRvGR.s page 38 721 0024 38BD pop {r3, r4, r5, pc} 722 .LVL90: 723 .L69: 724 0026 0446 mov r4, r0 468:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 725 .loc 1 468 0 726 0028 0220 movs r0, #2 727 .LVL91: 728 002a 84F83500 strb r0, [r4, #53] 471:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 729 .loc 1 471 0 730 002e 0020 movs r0, #0 731 0030 6065 str r0, [r4, #84] 474:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 732 .loc 1 474 0 733 0032 2046 mov r0, r4 734 0034 FFF7FEFF bl DMA_SetConfig 735 .LVL92: 477:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 736 .loc 1 477 0 737 0038 E26D ldr r2, [r4, #92] 738 003a 3F23 movs r3, #63 739 003c 9340 lsls r3, r3, r2 740 003e AB60 str r3, [r5, #8] 480:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR |= DMA_IT_FE; 741 .loc 1 480 0 742 0040 2268 ldr r2, [r4] 743 0042 1368 ldr r3, [r2] 744 0044 43F01603 orr r3, r3, #22 745 0048 1360 str r3, [r2] 481:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 746 .loc 1 481 0 747 004a 2268 ldr r2, [r4] 748 004c 5369 ldr r3, [r2, #20] 749 004e 43F08003 orr r3, r3, #128 750 0052 5361 str r3, [r2, #20] 483:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 751 .loc 1 483 0 752 0054 236C ldr r3, [r4, #64] 753 0056 23B1 cbz r3, .L66 485:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 754 .loc 1 485 0 755 0058 2268 ldr r2, [r4] 756 005a 1368 ldr r3, [r2] 757 005c 43F00803 orr r3, r3, #8 758 0060 1360 str r3, [r2] 759 .L66: 489:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 760 .loc 1 489 0 761 0062 2268 ldr r2, [r4] 762 0064 1368 ldr r3, [r2] 763 0066 43F00103 orr r3, r3, #1 764 006a 1360 str r3, [r2] 454:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 765 .loc 1 454 0 766 006c 0020 movs r0, #0 767 006e 38BD pop {r3, r4, r5, pc} ARM GAS /tmp/ccwgRvGR.s page 39 768 .LVL93: 769 .L67: 463:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 770 .loc 1 463 0 771 0070 0220 movs r0, #2 772 .LVL94: 501:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 773 .loc 1 501 0 774 0072 38BD pop {r3, r4, r5, pc} 775 .cfi_endproc 776 .LFE133: 778 .section .text.HAL_DMA_Abort,"ax",%progbits 779 .align 1 780 .global HAL_DMA_Abort 781 .syntax unified 782 .thumb 783 .thumb_func 784 .fpu fpv4-sp-d16 786 HAL_DMA_Abort: 787 .LFB134: 516:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** /* calculate DMA base and stream number */ 788 .loc 1 516 0 789 .cfi_startproc 790 @ args = 0, pretend = 0, frame = 0 791 @ frame_needed = 0, uses_anonymous_args = 0 792 .LVL95: 793 0000 70B5 push {r4, r5, r6, lr} 794 .LCFI8: 795 .cfi_def_cfa_offset 16 796 .cfi_offset 4, -16 797 .cfi_offset 5, -12 798 .cfi_offset 6, -8 799 .cfi_offset 14, -4 800 0002 0446 mov r4, r0 518:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 801 .loc 1 518 0 802 0004 866D ldr r6, [r0, #88] 803 .LVL96: 520:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 804 .loc 1 520 0 805 0006 FFF7FEFF bl HAL_GetTick 806 .LVL97: 522:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 807 .loc 1 522 0 808 000a 94F83530 ldrb r3, [r4, #53] @ zero_extendqisi2 809 000e DBB2 uxtb r3, r3 810 0010 022B cmp r3, #2 811 0012 06D0 beq .L71 524:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 812 .loc 1 524 0 813 0014 8023 movs r3, #128 814 0016 6365 str r3, [r4, #84] 527:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 815 .loc 1 527 0 816 0018 0023 movs r3, #0 817 001a 84F83430 strb r3, [r4, #52] 529:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } ARM GAS /tmp/ccwgRvGR.s page 40 818 .loc 1 529 0 819 001e 0120 movs r0, #1 820 .LVL98: 821 0020 70BD pop {r4, r5, r6, pc} 822 .LVL99: 823 .L71: 824 0022 0546 mov r5, r0 534:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR &= ~(DMA_IT_FE); 825 .loc 1 534 0 826 0024 2268 ldr r2, [r4] 827 0026 1368 ldr r3, [r2] 828 0028 23F01603 bic r3, r3, #22 829 002c 1360 str r3, [r2] 535:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 830 .loc 1 535 0 831 002e 2268 ldr r2, [r4] 832 0030 5369 ldr r3, [r2, #20] 833 0032 23F08003 bic r3, r3, #128 834 0036 5361 str r3, [r2, #20] 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 835 .loc 1 537 0 836 0038 236C ldr r3, [r4, #64] 837 003a E3B1 cbz r3, .L78 838 .L73: 539:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 839 .loc 1 539 0 840 003c 2268 ldr r2, [r4] 841 003e 1368 ldr r3, [r2] 842 0040 23F00803 bic r3, r3, #8 843 0044 1360 str r3, [r2] 844 .L74: 543:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 845 .loc 1 543 0 846 0046 2268 ldr r2, [r4] 847 0048 1368 ldr r3, [r2] 848 004a 23F00103 bic r3, r3, #1 849 004e 1360 str r3, [r2] 850 .LVL100: 851 .L75: 546:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 852 .loc 1 546 0 853 0050 2368 ldr r3, [r4] 854 0052 1B68 ldr r3, [r3] 855 0054 13F0010F tst r3, #1 856 0058 11D0 beq .L79 549:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 857 .loc 1 549 0 858 005a FFF7FEFF bl HAL_GetTick 859 .LVL101: 860 005e 401B subs r0, r0, r5 861 0060 0528 cmp r0, #5 862 0062 F5D9 bls .L75 552:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 863 .loc 1 552 0 864 0064 2023 movs r3, #32 865 0066 6365 str r3, [r4, #84] 555:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ARM GAS /tmp/ccwgRvGR.s page 41 866 .loc 1 555 0 867 0068 0023 movs r3, #0 868 006a 84F83430 strb r3, [r4, #52] 558:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 869 .loc 1 558 0 870 006e 0320 movs r0, #3 871 0070 84F83500 strb r0, [r4, #53] 560:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 872 .loc 1 560 0 873 0074 70BD pop {r4, r5, r6, pc} 874 .LVL102: 875 .L78: 537:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 876 .loc 1 537 0 discriminator 1 877 0076 A36C ldr r3, [r4, #72] 878 0078 002B cmp r3, #0 879 007a DFD1 bne .L73 880 007c E3E7 b .L74 881 .LVL103: 882 .L79: 565:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 883 .loc 1 565 0 884 007e E26D ldr r2, [r4, #92] 885 0080 3F23 movs r3, #63 886 0082 9340 lsls r3, r3, r2 887 0084 B360 str r3, [r6, #8] 568:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 888 .loc 1 568 0 889 0086 0020 movs r0, #0 890 0088 84F83400 strb r0, [r4, #52] 571:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 891 .loc 1 571 0 892 008c 0123 movs r3, #1 893 008e 84F83530 strb r3, [r4, #53] 574:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 894 .loc 1 574 0 895 0092 70BD pop {r4, r5, r6, pc} 896 .cfi_endproc 897 .LFE134: 899 .section .text.HAL_DMA_Abort_IT,"ax",%progbits 900 .align 1 901 .global HAL_DMA_Abort_IT 902 .syntax unified 903 .thumb 904 .thumb_func 905 .fpu fpv4-sp-d16 907 HAL_DMA_Abort_IT: 908 .LFB135: 583:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** if(hdma->State != HAL_DMA_STATE_BUSY) 909 .loc 1 583 0 910 .cfi_startproc 911 @ args = 0, pretend = 0, frame = 0 912 @ frame_needed = 0, uses_anonymous_args = 0 913 @ link register save eliminated. 914 .LVL104: 584:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 915 .loc 1 584 0 ARM GAS /tmp/ccwgRvGR.s page 42 916 0000 90F83530 ldrb r3, [r0, #53] @ zero_extendqisi2 917 0004 DBB2 uxtb r3, r3 918 0006 022B cmp r3, #2 919 0008 03D0 beq .L81 586:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR; 920 .loc 1 586 0 921 000a 8023 movs r3, #128 922 000c 4365 str r3, [r0, #84] 587:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 923 .loc 1 587 0 924 000e 0120 movs r0, #1 925 .LVL105: 926 0010 7047 bx lr 927 .LVL106: 928 .L81: 592:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 929 .loc 1 592 0 930 0012 0523 movs r3, #5 931 0014 80F83530 strb r3, [r0, #53] 595:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 932 .loc 1 595 0 933 0018 0268 ldr r2, [r0] 934 001a 1368 ldr r3, [r2] 935 001c 23F00103 bic r3, r3, #1 936 0020 1360 str r3, [r2] 598:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 937 .loc 1 598 0 938 0022 0020 movs r0, #0 939 .LVL107: 599:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 940 .loc 1 599 0 941 0024 7047 bx lr 942 .cfi_endproc 943 .LFE135: 945 .section .text.HAL_DMA_PollForTransfer,"ax",%progbits 946 .align 1 947 .global HAL_DMA_PollForTransfer 948 .syntax unified 949 .thumb 950 .thumb_func 951 .fpu fpv4-sp-d16 953 HAL_DMA_PollForTransfer: 954 .LFB136: 613:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; 955 .loc 1 613 0 956 .cfi_startproc 957 @ args = 0, pretend = 0, frame = 0 958 @ frame_needed = 0, uses_anonymous_args = 0 959 .LVL108: 960 0000 2DE9F843 push {r3, r4, r5, r6, r7, r8, r9, lr} 961 .LCFI9: 962 .cfi_def_cfa_offset 32 963 .cfi_offset 3, -32 964 .cfi_offset 4, -28 965 .cfi_offset 5, -24 966 .cfi_offset 6, -20 967 .cfi_offset 7, -16 ARM GAS /tmp/ccwgRvGR.s page 43 968 .cfi_offset 8, -12 969 .cfi_offset 9, -8 970 .cfi_offset 14, -4 971 0004 0446 mov r4, r0 972 0006 8946 mov r9, r1 973 0008 1546 mov r5, r2 974 .LVL109: 616:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmpisr; 975 .loc 1 616 0 976 000a FFF7FEFF bl HAL_GetTick 977 .LVL110: 622:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 978 .loc 1 622 0 979 000e 94F83530 ldrb r3, [r4, #53] @ zero_extendqisi2 980 0012 DBB2 uxtb r3, r3 981 0014 022B cmp r3, #2 982 0016 07D0 beq .L84 625:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** __HAL_UNLOCK(hdma); 983 .loc 1 625 0 984 0018 8023 movs r3, #128 985 001a 6365 str r3, [r4, #84] 626:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR; 986 .loc 1 626 0 987 001c 0023 movs r3, #0 988 001e 84F83430 strb r3, [r4, #52] 627:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 989 .loc 1 627 0 990 0022 0120 movs r0, #1 991 .LVL111: 992 0024 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 993 .LVL112: 994 .L84: 995 0028 8046 mov r8, r0 631:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 996 .loc 1 631 0 997 002a 2368 ldr r3, [r4] 998 002c 1B68 ldr r3, [r3] 999 002e 13F4807F tst r3, #256 1000 0032 38D1 bne .L100 638:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1001 .loc 1 638 0 1002 0034 B9F1000F cmp r9, #0 1003 0038 3BD1 bne .L87 641:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1004 .loc 1 641 0 1005 003a E36D ldr r3, [r4, #92] 1006 003c 2027 movs r7, #32 1007 003e 9F40 lsls r7, r7, r3 1008 .LVL113: 1009 .L88: 649:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** tmpisr = regs->ISR; 1010 .loc 1 649 0 1011 0040 A66D ldr r6, [r4, #88] 1012 .LVL114: 650:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1013 .loc 1 650 0 1014 0042 3368 ldr r3, [r6] ARM GAS /tmp/ccwgRvGR.s page 44 1015 .LVL115: 1016 .L89: 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1017 .loc 1 652 0 1018 0044 1F42 tst r7, r3 1019 0046 43D1 bne .L95 652:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1020 .loc 1 652 0 is_stmt 0 discriminator 1 1021 0048 636D ldr r3, [r4, #84] 1022 .LVL116: 1023 004a 13F0010F tst r3, #1 1024 004e 3FD1 bne .L95 655:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1025 .loc 1 655 0 is_stmt 1 1026 0050 B5F1FF3F cmp r5, #-1 1027 0054 07D0 beq .L90 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1028 .loc 1 657 0 1029 0056 002D cmp r5, #0 1030 0058 2FD0 beq .L91 657:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1031 .loc 1 657 0 is_stmt 0 discriminator 1 1032 005a FFF7FEFF bl HAL_GetTick 1033 .LVL117: 1034 005e A0EB0800 sub r0, r0, r8 1035 0062 8542 cmp r5, r0 1036 0064 29D3 bcc .L91 1037 .L90: 673:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1038 .loc 1 673 0 is_stmt 1 1039 0066 3368 ldr r3, [r6] 1040 .LVL118: 675:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1041 .loc 1 675 0 1042 0068 E16D ldr r1, [r4, #92] 1043 006a 0822 movs r2, #8 1044 006c 8A40 lsls r2, r2, r1 1045 006e 1342 tst r3, r2 1046 0070 04D0 beq .L92 678:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1047 .loc 1 678 0 1048 0072 616D ldr r1, [r4, #84] 1049 0074 41F00101 orr r1, r1, #1 1050 0078 6165 str r1, [r4, #84] 681:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1051 .loc 1 681 0 1052 007a B260 str r2, [r6, #8] 1053 .L92: 684:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1054 .loc 1 684 0 1055 007c E16D ldr r1, [r4, #92] 1056 007e 0122 movs r2, #1 1057 0080 8A40 lsls r2, r2, r1 1058 0082 1342 tst r3, r2 1059 0084 04D0 beq .L93 687:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1060 .loc 1 687 0 ARM GAS /tmp/ccwgRvGR.s page 45 1061 0086 616D ldr r1, [r4, #84] 1062 0088 41F00201 orr r1, r1, #2 1063 008c 6165 str r1, [r4, #84] 690:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1064 .loc 1 690 0 1065 008e B260 str r2, [r6, #8] 1066 .L93: 693:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1067 .loc 1 693 0 1068 0090 E16D ldr r1, [r4, #92] 1069 0092 0422 movs r2, #4 1070 0094 8A40 lsls r2, r2, r1 1071 0096 1342 tst r3, r2 1072 0098 D4D0 beq .L89 696:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1073 .loc 1 696 0 1074 009a 616D ldr r1, [r4, #84] 1075 009c 41F00401 orr r1, r1, #4 1076 00a0 6165 str r1, [r4, #84] 699:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1077 .loc 1 699 0 1078 00a2 B260 str r2, [r6, #8] 1079 00a4 CEE7 b .L89 1080 .LVL119: 1081 .L100: 633:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return HAL_ERROR; 1082 .loc 1 633 0 1083 00a6 4FF48073 mov r3, #256 1084 00aa 6365 str r3, [r4, #84] 634:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1085 .loc 1 634 0 1086 00ac 0120 movs r0, #1 1087 .LVL120: 1088 00ae BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 1089 .LVL121: 1090 .L87: 646:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1091 .loc 1 646 0 1092 00b2 E36D ldr r3, [r4, #92] 1093 00b4 1027 movs r7, #16 1094 00b6 9F40 lsls r7, r7, r3 1095 .LVL122: 1096 00b8 C2E7 b .L88 1097 .LVL123: 1098 .L91: 660:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1099 .loc 1 660 0 1100 00ba 2023 movs r3, #32 1101 00bc 6365 str r3, [r4, #84] 663:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1102 .loc 1 663 0 1103 00be 0023 movs r3, #0 1104 00c0 84F83430 strb r3, [r4, #52] 666:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1105 .loc 1 666 0 1106 00c4 0123 movs r3, #1 1107 00c6 84F83530 strb r3, [r4, #53] ARM GAS /tmp/ccwgRvGR.s page 46 668:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1108 .loc 1 668 0 1109 00ca 0320 movs r0, #3 1110 00cc BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 1111 .LVL124: 1112 .L95: 703:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1113 .loc 1 703 0 1114 00d0 636D ldr r3, [r4, #84] 1115 00d2 1BB1 cbz r3, .L97 705:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1116 .loc 1 705 0 1117 00d4 636D ldr r3, [r4, #84] 1118 00d6 13F0010F tst r3, #1 1119 00da 09D1 bne .L101 1120 .L97: 723:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1121 .loc 1 723 0 1122 00dc B9F1000F cmp r9, #0 1123 00e0 15D0 beq .L102 736:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1124 .loc 1 736 0 1125 00e2 E26D ldr r2, [r4, #92] 1126 00e4 1023 movs r3, #16 1127 00e6 9340 lsls r3, r3, r2 1128 00e8 B360 str r3, [r6, #8] 739:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1129 .loc 1 739 0 1130 00ea 0020 movs r0, #0 740:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1131 .loc 1 740 0 1132 00ec BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 1133 .LVL125: 1134 .L101: 707:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1135 .loc 1 707 0 1136 00f0 2046 mov r0, r4 1137 00f2 FFF7FEFF bl HAL_DMA_Abort 1138 .LVL126: 710:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1139 .loc 1 710 0 1140 00f6 E26D ldr r2, [r4, #92] 1141 00f8 3023 movs r3, #48 1142 00fa 9340 lsls r3, r3, r2 1143 00fc B360 str r3, [r6, #8] 713:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1144 .loc 1 713 0 1145 00fe 0023 movs r3, #0 1146 0100 84F83430 strb r3, [r4, #52] 716:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1147 .loc 1 716 0 1148 0104 0120 movs r0, #1 1149 0106 84F83500 strb r0, [r4, #53] 718:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1150 .loc 1 718 0 1151 010a BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 1152 .LVL127: ARM GAS /tmp/ccwgRvGR.s page 47 1153 .L102: 726:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1154 .loc 1 726 0 1155 010e E26D ldr r2, [r4, #92] 1156 0110 3023 movs r3, #48 1157 0112 9340 lsls r3, r3, r2 1158 0114 B360 str r3, [r6, #8] 729:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1159 .loc 1 729 0 1160 0116 0020 movs r0, #0 1161 0118 84F83400 strb r0, [r4, #52] 731:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1162 .loc 1 731 0 1163 011c 0123 movs r3, #1 1164 011e 84F83530 strb r3, [r4, #53] 1165 0122 BDE8F883 pop {r3, r4, r5, r6, r7, r8, r9, pc} 1166 .cfi_endproc 1167 .LFE136: 1169 .section .text.HAL_DMA_IRQHandler,"ax",%progbits 1170 .align 1 1171 .global HAL_DMA_IRQHandler 1172 .syntax unified 1173 .thumb 1174 .thumb_func 1175 .fpu fpv4-sp-d16 1177 HAL_DMA_IRQHandler: 1178 .LFB137: 749:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t tmpisr; 1179 .loc 1 749 0 1180 .cfi_startproc 1181 @ args = 0, pretend = 0, frame = 8 1182 @ frame_needed = 0, uses_anonymous_args = 0 1183 .LVL128: 1184 0000 F0B5 push {r4, r5, r6, r7, lr} 1185 .LCFI10: 1186 .cfi_def_cfa_offset 20 1187 .cfi_offset 4, -20 1188 .cfi_offset 5, -16 1189 .cfi_offset 6, -12 1190 .cfi_offset 7, -8 1191 .cfi_offset 14, -4 1192 0002 83B0 sub sp, sp, #12 1193 .LCFI11: 1194 .cfi_def_cfa_offset 32 1195 0004 0446 mov r4, r0 751:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** uint32_t timeout = SystemCoreClock / 9600U; 1196 .loc 1 751 0 1197 0006 0023 movs r3, #0 1198 0008 0193 str r3, [sp, #4] 752:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1199 .loc 1 752 0 1200 000a 724B ldr r3, .L125 1201 000c 1D68 ldr r5, [r3] 1202 000e 724B ldr r3, .L125+4 1203 0010 A3FB0535 umull r3, r5, r3, r5 1204 0014 AD0A lsrs r5, r5, #10 1205 .LVL129: ARM GAS /tmp/ccwgRvGR.s page 48 755:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1206 .loc 1 755 0 1207 0016 876D ldr r7, [r0, #88] 1208 .LVL130: 757:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1209 .loc 1 757 0 1210 0018 3E68 ldr r6, [r7] 1211 .LVL131: 760:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1212 .loc 1 760 0 1213 001a C26D ldr r2, [r0, #92] 1214 001c 0823 movs r3, #8 1215 001e 9340 lsls r3, r3, r2 1216 0020 1E42 tst r6, r3 1217 0022 10D0 beq .L104 762:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1218 .loc 1 762 0 1219 0024 0368 ldr r3, [r0] 1220 0026 1A68 ldr r2, [r3] 1221 0028 12F0040F tst r2, #4 1222 002c 0BD0 beq .L104 765:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1223 .loc 1 765 0 1224 002e 1A68 ldr r2, [r3] 1225 0030 22F00402 bic r2, r2, #4 1226 0034 1A60 str r2, [r3] 768:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1227 .loc 1 768 0 1228 0036 C26D ldr r2, [r0, #92] 1229 0038 0823 movs r3, #8 1230 003a 9340 lsls r3, r3, r2 1231 003c BB60 str r3, [r7, #8] 771:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1232 .loc 1 771 0 1233 003e 436D ldr r3, [r0, #84] 1234 0040 43F00103 orr r3, r3, #1 1235 0044 4365 str r3, [r0, #84] 1236 .L104: 775:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1237 .loc 1 775 0 1238 0046 E26D ldr r2, [r4, #92] 1239 0048 0123 movs r3, #1 1240 004a 9340 lsls r3, r3, r2 1241 004c 1E42 tst r6, r3 1242 004e 09D0 beq .L105 777:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1243 .loc 1 777 0 1244 0050 2268 ldr r2, [r4] 1245 0052 5269 ldr r2, [r2, #20] 1246 0054 12F0800F tst r2, #128 1247 0058 04D0 beq .L105 780:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1248 .loc 1 780 0 1249 005a BB60 str r3, [r7, #8] 783:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1250 .loc 1 783 0 1251 005c 636D ldr r3, [r4, #84] ARM GAS /tmp/ccwgRvGR.s page 49 1252 005e 43F00203 orr r3, r3, #2 1253 0062 6365 str r3, [r4, #84] 1254 .L105: 787:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1255 .loc 1 787 0 1256 0064 E26D ldr r2, [r4, #92] 1257 0066 0423 movs r3, #4 1258 0068 9340 lsls r3, r3, r2 1259 006a 1E42 tst r6, r3 1260 006c 09D0 beq .L106 789:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1261 .loc 1 789 0 1262 006e 2268 ldr r2, [r4] 1263 0070 1268 ldr r2, [r2] 1264 0072 12F0020F tst r2, #2 1265 0076 04D0 beq .L106 792:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1266 .loc 1 792 0 1267 0078 BB60 str r3, [r7, #8] 795:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1268 .loc 1 795 0 1269 007a 636D ldr r3, [r4, #84] 1270 007c 43F00403 orr r3, r3, #4 1271 0080 6365 str r3, [r4, #84] 1272 .L106: 799:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1273 .loc 1 799 0 1274 0082 E26D ldr r2, [r4, #92] 1275 0084 1023 movs r3, #16 1276 0086 9340 lsls r3, r3, r2 1277 0088 1E42 tst r6, r3 1278 008a 24D0 beq .L107 801:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1279 .loc 1 801 0 1280 008c 2268 ldr r2, [r4] 1281 008e 1268 ldr r2, [r2] 1282 0090 12F0080F tst r2, #8 1283 0094 1FD0 beq .L107 804:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1284 .loc 1 804 0 1285 0096 BB60 str r3, [r7, #8] 807:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1286 .loc 1 807 0 1287 0098 2368 ldr r3, [r4] 1288 009a 1A68 ldr r2, [r3] 1289 009c 12F4802F tst r2, #262144 1290 00a0 0DD0 beq .L108 810:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1291 .loc 1 810 0 1292 00a2 1B68 ldr r3, [r3] 1293 00a4 13F4002F tst r3, #524288 1294 00a8 04D1 bne .L109 812:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1295 .loc 1 812 0 1296 00aa 236C ldr r3, [r4, #64] 1297 00ac 9BB1 cbz r3, .L107 815:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } ARM GAS /tmp/ccwgRvGR.s page 50 1298 .loc 1 815 0 1299 00ae 2046 mov r0, r4 1300 .LVL132: 1301 00b0 9847 blx r3 1302 .LVL133: 1303 00b2 10E0 b .L107 1304 .LVL134: 1305 .L109: 821:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1306 .loc 1 821 0 1307 00b4 A36C ldr r3, [r4, #72] 1308 00b6 73B1 cbz r3, .L107 824:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1309 .loc 1 824 0 1310 00b8 2046 mov r0, r4 1311 .LVL135: 1312 00ba 9847 blx r3 1313 .LVL136: 1314 00bc 0BE0 b .L107 1315 .LVL137: 1316 .L108: 831:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1317 .loc 1 831 0 1318 00be 1A68 ldr r2, [r3] 1319 00c0 12F4807F tst r2, #256 1320 00c4 03D1 bne .L110 834:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1321 .loc 1 834 0 1322 00c6 1A68 ldr r2, [r3] 1323 00c8 22F00802 bic r2, r2, #8 1324 00cc 1A60 str r2, [r3] 1325 .L110: 837:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1326 .loc 1 837 0 1327 00ce 236C ldr r3, [r4, #64] 1328 00d0 0BB1 cbz r3, .L107 840:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1329 .loc 1 840 0 1330 00d2 2046 mov r0, r4 1331 .LVL138: 1332 00d4 9847 blx r3 1333 .LVL139: 1334 .L107: 846:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1335 .loc 1 846 0 1336 00d6 E26D ldr r2, [r4, #92] 1337 00d8 2023 movs r3, #32 1338 00da 9340 lsls r3, r3, r2 1339 00dc 1E42 tst r6, r3 1340 00de 55D0 beq .L111 848:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1341 .loc 1 848 0 1342 00e0 2268 ldr r2, [r4] 1343 00e2 1268 ldr r2, [r2] 1344 00e4 12F0100F tst r2, #16 1345 00e8 50D0 beq .L111 851:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** ARM GAS /tmp/ccwgRvGR.s page 51 1346 .loc 1 851 0 1347 00ea BB60 str r3, [r7, #8] 853:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1348 .loc 1 853 0 1349 00ec 94F83530 ldrb r3, [r4, #53] @ zero_extendqisi2 1350 00f0 DBB2 uxtb r3, r3 1351 00f2 052B cmp r3, #5 1352 00f4 0ED0 beq .L123 880:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1353 .loc 1 880 0 1354 00f6 2368 ldr r3, [r4] 1355 00f8 1A68 ldr r2, [r3] 1356 00fa 12F4802F tst r2, #262144 1357 00fe 33D0 beq .L116 883:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1358 .loc 1 883 0 1359 0100 1B68 ldr r3, [r3] 1360 0102 13F4002F tst r3, #524288 1361 0106 2AD1 bne .L117 885:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1362 .loc 1 885 0 1363 0108 636C ldr r3, [r4, #68] 1364 010a 002B cmp r3, #0 1365 010c 3ED0 beq .L111 888:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1366 .loc 1 888 0 1367 010e 2046 mov r0, r4 1368 0110 9847 blx r3 1369 .LVL140: 1370 0112 3BE0 b .L111 1371 .L123: 856:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->Instance->FCR &= ~(DMA_IT_FE); 1372 .loc 1 856 0 1373 0114 2268 ldr r2, [r4] 1374 0116 1368 ldr r3, [r2] 1375 0118 23F01603 bic r3, r3, #22 1376 011c 1360 str r3, [r2] 857:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1377 .loc 1 857 0 1378 011e 2268 ldr r2, [r4] 1379 0120 5369 ldr r3, [r2, #20] 1380 0122 23F08003 bic r3, r3, #128 1381 0126 5361 str r3, [r2, #20] 859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1382 .loc 1 859 0 1383 0128 236C ldr r3, [r4, #64] 1384 012a A3B1 cbz r3, .L124 1385 .L113: 861:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1386 .loc 1 861 0 1387 012c 2268 ldr r2, [r4] 1388 012e 1368 ldr r3, [r2] 1389 0130 23F00803 bic r3, r3, #8 1390 0134 1360 str r3, [r2] 1391 .L114: 865:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1392 .loc 1 865 0 ARM GAS /tmp/ccwgRvGR.s page 52 1393 0136 E26D ldr r2, [r4, #92] 1394 0138 3F23 movs r3, #63 1395 013a 9340 lsls r3, r3, r2 1396 013c BB60 str r3, [r7, #8] 868:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1397 .loc 1 868 0 1398 013e 0023 movs r3, #0 1399 0140 84F83430 strb r3, [r4, #52] 871:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1400 .loc 1 871 0 1401 0144 0123 movs r3, #1 1402 0146 84F83530 strb r3, [r4, #53] 873:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1403 .loc 1 873 0 1404 014a 236D ldr r3, [r4, #80] 1405 014c 002B cmp r3, #0 1406 014e 3FD0 beq .L103 875:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1407 .loc 1 875 0 1408 0150 2046 mov r0, r4 1409 0152 9847 blx r3 1410 .LVL141: 1411 0154 3CE0 b .L103 1412 .L124: 859:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1413 .loc 1 859 0 discriminator 1 1414 0156 A36C ldr r3, [r4, #72] 1415 0158 002B cmp r3, #0 1416 015a E7D1 bne .L113 1417 015c EBE7 b .L114 1418 .L117: 894:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1419 .loc 1 894 0 1420 015e E36B ldr r3, [r4, #60] 1421 0160 A3B1 cbz r3, .L111 897:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1422 .loc 1 897 0 1423 0162 2046 mov r0, r4 1424 0164 9847 blx r3 1425 .LVL142: 1426 0166 11E0 b .L111 1427 .L116: 904:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1428 .loc 1 904 0 1429 0168 1A68 ldr r2, [r3] 1430 016a 12F4807F tst r2, #256 1431 016e 09D1 bne .L118 907:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1432 .loc 1 907 0 1433 0170 1A68 ldr r2, [r3] 1434 0172 22F01002 bic r2, r2, #16 1435 0176 1A60 str r2, [r3] 910:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1436 .loc 1 910 0 1437 0178 0023 movs r3, #0 1438 017a 84F83430 strb r3, [r4, #52] 913:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } ARM GAS /tmp/ccwgRvGR.s page 53 1439 .loc 1 913 0 1440 017e 0123 movs r3, #1 1441 0180 84F83530 strb r3, [r4, #53] 1442 .L118: 916:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1443 .loc 1 916 0 1444 0184 E36B ldr r3, [r4, #60] 1445 0186 0BB1 cbz r3, .L111 919:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1446 .loc 1 919 0 1447 0188 2046 mov r0, r4 1448 018a 9847 blx r3 1449 .LVL143: 1450 .L111: 926:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1451 .loc 1 926 0 1452 018c 636D ldr r3, [r4, #84] 1453 018e FBB1 cbz r3, .L103 928:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1454 .loc 1 928 0 1455 0190 636D ldr r3, [r4, #84] 1456 0192 13F0010F tst r3, #1 1457 0196 17D0 beq .L119 930:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1458 .loc 1 930 0 1459 0198 0523 movs r3, #5 1460 019a 84F83530 strb r3, [r4, #53] 933:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1461 .loc 1 933 0 1462 019e 2268 ldr r2, [r4] 1463 01a0 1368 ldr r3, [r2] 1464 01a2 23F00103 bic r3, r3, #1 1465 01a6 1360 str r3, [r2] 1466 .L121: 937:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1467 .loc 1 937 0 1468 01a8 019B ldr r3, [sp, #4] 1469 01aa 0133 adds r3, r3, #1 1470 01ac 0193 str r3, [sp, #4] 1471 01ae 9D42 cmp r5, r3 1472 01b0 04D3 bcc .L120 942:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1473 .loc 1 942 0 1474 01b2 2368 ldr r3, [r4] 1475 01b4 1B68 ldr r3, [r3] 1476 01b6 13F0010F tst r3, #1 1477 01ba F5D1 bne .L121 1478 .L120: 945:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1479 .loc 1 945 0 1480 01bc 0023 movs r3, #0 1481 01be 84F83430 strb r3, [r4, #52] 948:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1482 .loc 1 948 0 1483 01c2 0123 movs r3, #1 1484 01c4 84F83530 strb r3, [r4, #53] 1485 .L119: ARM GAS /tmp/ccwgRvGR.s page 54 951:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1486 .loc 1 951 0 1487 01c8 E36C ldr r3, [r4, #76] 1488 01ca 0BB1 cbz r3, .L103 954:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1489 .loc 1 954 0 1490 01cc 2046 mov r0, r4 1491 01ce 9847 blx r3 1492 .LVL144: 1493 .L103: 957:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1494 .loc 1 957 0 1495 01d0 03B0 add sp, sp, #12 1496 .LCFI12: 1497 .cfi_def_cfa_offset 20 1498 @ sp needed 1499 01d2 F0BD pop {r4, r5, r6, r7, pc} 1500 .LVL145: 1501 .L126: 1502 .align 2 1503 .L125: 1504 01d4 00000000 .word SystemCoreClock 1505 01d8 B5814E1B .word 458129845 1506 .cfi_endproc 1507 .LFE137: 1509 .section .text.HAL_DMA_RegisterCallback,"ax",%progbits 1510 .align 1 1511 .global HAL_DMA_RegisterCallback 1512 .syntax unified 1513 .thumb 1514 .thumb_func 1515 .fpu fpv4-sp-d16 1517 HAL_DMA_RegisterCallback: 1518 .LFB138: 970:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1519 .loc 1 970 0 1520 .cfi_startproc 1521 @ args = 0, pretend = 0, frame = 0 1522 @ frame_needed = 0, uses_anonymous_args = 0 1523 @ link register save eliminated. 1524 .LVL146: 1525 0000 0346 mov r3, r0 1526 .LVL147: 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1527 .loc 1 975 0 1528 0002 90F83400 ldrb r0, [r0, #52] @ zero_extendqisi2 1529 .LVL148: 1530 0006 0128 cmp r0, #1 1531 0008 27D0 beq .L137 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1532 .loc 1 975 0 is_stmt 0 discriminator 2 1533 000a 0120 movs r0, #1 1534 000c 83F83400 strb r0, [r3, #52] 977:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1535 .loc 1 977 0 is_stmt 1 discriminator 2 1536 0010 93F83500 ldrb r0, [r3, #53] @ zero_extendqisi2 1537 0014 C0B2 uxtb r0, r0 ARM GAS /tmp/ccwgRvGR.s page 55 1538 0016 0128 cmp r0, #1 1539 0018 04D0 beq .L140 1012:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1540 .loc 1 1012 0 1541 001a 0120 movs r0, #1 1542 .L129: 1543 .LVL149: 1016:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1544 .loc 1 1016 0 1545 001c 0022 movs r2, #0 1546 .LVL150: 1547 001e 83F83420 strb r2, [r3, #52] 1018:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1548 .loc 1 1018 0 1549 0022 7047 bx lr 1550 .LVL151: 1551 .L140: 979:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1552 .loc 1 979 0 1553 0024 0529 cmp r1, #5 1554 0026 16D8 bhi .L139 1555 0028 DFE801F0 tbb [pc, r1] 1556 .L131: 1557 002c 03 .byte (.L130-.L131)/2 1558 002d 06 .byte (.L132-.L131)/2 1559 002e 09 .byte (.L133-.L131)/2 1560 002f 0C .byte (.L134-.L131)/2 1561 0030 0F .byte (.L135-.L131)/2 1562 0031 12 .byte (.L136-.L131)/2 1563 .p2align 1 1564 .L130: 982:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1565 .loc 1 982 0 1566 0032 DA63 str r2, [r3, #60] 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1567 .loc 1 972 0 1568 0034 0020 movs r0, #0 983:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1569 .loc 1 983 0 1570 0036 F1E7 b .L129 1571 .L132: 986:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1572 .loc 1 986 0 1573 0038 1A64 str r2, [r3, #64] 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1574 .loc 1 972 0 1575 003a 0020 movs r0, #0 987:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1576 .loc 1 987 0 1577 003c EEE7 b .L129 1578 .L133: 990:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1579 .loc 1 990 0 1580 003e 5A64 str r2, [r3, #68] 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1581 .loc 1 972 0 1582 0040 0020 movs r0, #0 ARM GAS /tmp/ccwgRvGR.s page 56 991:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1583 .loc 1 991 0 1584 0042 EBE7 b .L129 1585 .L134: 994:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1586 .loc 1 994 0 1587 0044 9A64 str r2, [r3, #72] 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1588 .loc 1 972 0 1589 0046 0020 movs r0, #0 995:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1590 .loc 1 995 0 1591 0048 E8E7 b .L129 1592 .L135: 998:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1593 .loc 1 998 0 1594 004a DA64 str r2, [r3, #76] 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1595 .loc 1 972 0 1596 004c 0020 movs r0, #0 999:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1597 .loc 1 999 0 1598 004e E5E7 b .L129 1599 .L136: 1002:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1600 .loc 1 1002 0 1601 0050 1A65 str r2, [r3, #80] 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1602 .loc 1 972 0 1603 0052 0020 movs r0, #0 1003:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1604 .loc 1 1003 0 1605 0054 E2E7 b .L129 1606 .L139: 972:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1607 .loc 1 972 0 1608 0056 0020 movs r0, #0 1609 0058 E0E7 b .L129 1610 .L137: 975:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1611 .loc 1 975 0 1612 005a 0220 movs r0, #2 1019:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1613 .loc 1 1019 0 1614 005c 7047 bx lr 1615 .cfi_endproc 1616 .LFE138: 1618 .section .text.HAL_DMA_UnRegisterCallback,"ax",%progbits 1619 .align 1 1620 .global HAL_DMA_UnRegisterCallback 1621 .syntax unified 1622 .thumb 1623 .thumb_func 1624 .fpu fpv4-sp-d16 1626 HAL_DMA_UnRegisterCallback: 1627 .LFB139: 1030:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** HAL_StatusTypeDef status = HAL_OK; ARM GAS /tmp/ccwgRvGR.s page 57 1628 .loc 1 1030 0 1629 .cfi_startproc 1630 @ args = 0, pretend = 0, frame = 0 1631 @ frame_needed = 0, uses_anonymous_args = 0 1632 @ link register save eliminated. 1633 .LVL152: 1634 0000 0346 mov r3, r0 1635 .LVL153: 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1636 .loc 1 1034 0 1637 0002 90F83420 ldrb r2, [r0, #52] @ zero_extendqisi2 1638 0006 012A cmp r2, #1 1639 0008 30D0 beq .L152 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1640 .loc 1 1034 0 is_stmt 0 discriminator 2 1641 000a 0122 movs r2, #1 1642 000c 80F83420 strb r2, [r0, #52] 1036:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1643 .loc 1 1036 0 is_stmt 1 discriminator 2 1644 0010 90F83520 ldrb r2, [r0, #53] @ zero_extendqisi2 1645 0014 D2B2 uxtb r2, r2 1646 0016 012A cmp r2, #1 1647 0018 04D0 beq .L155 1080:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1648 .loc 1 1080 0 1649 001a 0120 movs r0, #1 1650 .LVL154: 1651 .L143: 1084:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1652 .loc 1 1084 0 1653 001c 0022 movs r2, #0 1654 001e 83F83420 strb r2, [r3, #52] 1086:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1655 .loc 1 1086 0 1656 0022 7047 bx lr 1657 .LVL155: 1658 .L155: 1038:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** { 1659 .loc 1 1038 0 1660 0024 0629 cmp r1, #6 1661 0026 1FD8 bhi .L154 1662 0028 DFE801F0 tbb [pc, r1] 1663 .L145: 1664 002c 04 .byte (.L144-.L145)/2 1665 002d 07 .byte (.L146-.L145)/2 1666 002e 0A .byte (.L147-.L145)/2 1667 002f 0D .byte (.L148-.L145)/2 1668 0030 10 .byte (.L149-.L145)/2 1669 0031 13 .byte (.L150-.L145)/2 1670 0032 16 .byte (.L151-.L145)/2 1671 0033 00 .p2align 1 1672 .L144: 1041:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1673 .loc 1 1041 0 1674 0034 0020 movs r0, #0 1675 .LVL156: 1676 0036 D863 str r0, [r3, #60] ARM GAS /tmp/ccwgRvGR.s page 58 1042:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1677 .loc 1 1042 0 1678 0038 F0E7 b .L143 1679 .LVL157: 1680 .L146: 1045:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1681 .loc 1 1045 0 1682 003a 0020 movs r0, #0 1683 .LVL158: 1684 003c 1864 str r0, [r3, #64] 1046:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1685 .loc 1 1046 0 1686 003e EDE7 b .L143 1687 .LVL159: 1688 .L147: 1049:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1689 .loc 1 1049 0 1690 0040 0020 movs r0, #0 1691 .LVL160: 1692 0042 5864 str r0, [r3, #68] 1050:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1693 .loc 1 1050 0 1694 0044 EAE7 b .L143 1695 .LVL161: 1696 .L148: 1053:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1697 .loc 1 1053 0 1698 0046 0020 movs r0, #0 1699 .LVL162: 1700 0048 9864 str r0, [r3, #72] 1054:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1701 .loc 1 1054 0 1702 004a E7E7 b .L143 1703 .LVL163: 1704 .L149: 1057:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1705 .loc 1 1057 0 1706 004c 0020 movs r0, #0 1707 .LVL164: 1708 004e D864 str r0, [r3, #76] 1058:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1709 .loc 1 1058 0 1710 0050 E4E7 b .L143 1711 .LVL165: 1712 .L150: 1061:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1713 .loc 1 1061 0 1714 0052 0020 movs r0, #0 1715 .LVL166: 1716 0054 1865 str r0, [r3, #80] 1062:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1717 .loc 1 1062 0 1718 0056 E1E7 b .L143 1719 .LVL167: 1720 .L151: 1065:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferHalfCpltCallback = NULL; 1721 .loc 1 1065 0 ARM GAS /tmp/ccwgRvGR.s page 59 1722 0058 0020 movs r0, #0 1723 .LVL168: 1724 005a D863 str r0, [r3, #60] 1066:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1CpltCallback = NULL; 1725 .loc 1 1066 0 1726 005c 1864 str r0, [r3, #64] 1067:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferM1HalfCpltCallback = NULL; 1727 .loc 1 1067 0 1728 005e 5864 str r0, [r3, #68] 1068:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferErrorCallback = NULL; 1729 .loc 1 1068 0 1730 0060 9864 str r0, [r3, #72] 1069:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** hdma->XferAbortCallback = NULL; 1731 .loc 1 1069 0 1732 0062 D864 str r0, [r3, #76] 1070:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1733 .loc 1 1070 0 1734 0064 1865 str r0, [r3, #80] 1071:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1735 .loc 1 1071 0 1736 0066 D9E7 b .L143 1737 .LVL169: 1738 .L154: 1074:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** break; 1739 .loc 1 1074 0 1740 0068 0120 movs r0, #1 1741 .LVL170: 1742 006a D7E7 b .L143 1743 .LVL171: 1744 .L152: 1034:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1745 .loc 1 1034 0 1746 006c 0220 movs r0, #2 1747 .LVL172: 1087:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1748 .loc 1 1087 0 1749 006e 7047 bx lr 1750 .cfi_endproc 1751 .LFE139: 1753 .section .text.HAL_DMA_GetState,"ax",%progbits 1754 .align 1 1755 .global HAL_DMA_GetState 1756 .syntax unified 1757 .thumb 1758 .thumb_func 1759 .fpu fpv4-sp-d16 1761 HAL_DMA_GetState: 1762 .LFB140: 1115:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return hdma->State; 1763 .loc 1 1115 0 1764 .cfi_startproc 1765 @ args = 0, pretend = 0, frame = 0 1766 @ frame_needed = 0, uses_anonymous_args = 0 1767 @ link register save eliminated. 1768 .LVL173: 1116:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1769 .loc 1 1116 0 ARM GAS /tmp/ccwgRvGR.s page 60 1770 0000 90F83500 ldrb r0, [r0, #53] @ zero_extendqisi2 1771 .LVL174: 1117:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1772 .loc 1 1117 0 1773 0004 7047 bx lr 1774 .cfi_endproc 1775 .LFE140: 1777 .section .text.HAL_DMA_GetError,"ax",%progbits 1778 .align 1 1779 .global HAL_DMA_GetError 1780 .syntax unified 1781 .thumb 1782 .thumb_func 1783 .fpu fpv4-sp-d16 1785 HAL_DMA_GetError: 1786 .LFB141: 1126:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** return hdma->ErrorCode; 1787 .loc 1 1126 0 1788 .cfi_startproc 1789 @ args = 0, pretend = 0, frame = 0 1790 @ frame_needed = 0, uses_anonymous_args = 0 1791 @ link register save eliminated. 1792 .LVL175: 1127:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** } 1793 .loc 1 1127 0 1794 0000 406D ldr r0, [r0, #84] 1795 .LVL176: 1128:Drivers/STM32F4xx_HAL_Driver/Src/stm32f4xx_hal_dma.c **** 1796 .loc 1 1128 0 1797 0002 7047 bx lr 1798 .cfi_endproc 1799 .LFE141: 1801 .section .rodata.flagBitshiftOffset.7620,"a",%progbits 1802 .align 2 1803 .set .LANCHOR0,. + 0 1806 flagBitshiftOffset.7620: 1807 0000 00 .byte 0 1808 0001 06 .byte 6 1809 0002 10 .byte 16 1810 0003 16 .byte 22 1811 0004 00 .byte 0 1812 0005 06 .byte 6 1813 0006 10 .byte 16 1814 0007 16 .byte 22 1815 .text 1816 .Letext0: 1817 .file 2 "/usr/include/newlib/machine/_default_types.h" 1818 .file 3 "/usr/include/newlib/sys/_stdint.h" 1819 .file 4 "Drivers/CMSIS/Include/core_cm4.h" 1820 .file 5 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/system_stm32f4xx.h" 1821 .file 6 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f407xx.h" 1822 .file 7 "Drivers/CMSIS/Device/ST/STM32F4xx/Include/stm32f4xx.h" 1823 .file 8 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_def.h" 1824 .file 9 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal_dma.h" 1825 .file 10 "Drivers/STM32F4xx_HAL_Driver/Inc/stm32f4xx_hal.h" ARM GAS /tmp/ccwgRvGR.s page 61 DEFINED SYMBOLS *ABS*:0000000000000000 stm32f4xx_hal_dma.c /tmp/ccwgRvGR.s:18 .text.DMA_SetConfig:0000000000000000 $t /tmp/ccwgRvGR.s:24 .text.DMA_SetConfig:0000000000000000 DMA_SetConfig /tmp/ccwgRvGR.s:83 .text.DMA_CalcBaseAndBitshift:0000000000000000 $t /tmp/ccwgRvGR.s:89 .text.DMA_CalcBaseAndBitshift:0000000000000000 DMA_CalcBaseAndBitshift /tmp/ccwgRvGR.s:132 .text.DMA_CalcBaseAndBitshift:0000000000000034 $d /tmp/ccwgRvGR.s:138 .text.DMA_CheckFifoParam:0000000000000000 $t /tmp/ccwgRvGR.s:144 .text.DMA_CheckFifoParam:0000000000000000 DMA_CheckFifoParam /tmp/ccwgRvGR.s:211 .text.DMA_CheckFifoParam:0000000000000046 $d /tmp/ccwgRvGR.s:215 .text.DMA_CheckFifoParam:000000000000004a $t /tmp/ccwgRvGR.s:301 .text.HAL_DMA_Init:0000000000000000 $t /tmp/ccwgRvGR.s:308 .text.HAL_DMA_Init:0000000000000000 HAL_DMA_Init /tmp/ccwgRvGR.s:486 .text.HAL_DMA_Init:00000000000000cc $d /tmp/ccwgRvGR.s:491 .text.HAL_DMA_DeInit:0000000000000000 $t /tmp/ccwgRvGR.s:498 .text.HAL_DMA_DeInit:0000000000000000 HAL_DMA_DeInit /tmp/ccwgRvGR.s:600 .text.HAL_DMA_Start:0000000000000000 $t /tmp/ccwgRvGR.s:607 .text.HAL_DMA_Start:0000000000000000 HAL_DMA_Start /tmp/ccwgRvGR.s:676 .text.HAL_DMA_Start_IT:0000000000000000 $t /tmp/ccwgRvGR.s:683 .text.HAL_DMA_Start_IT:0000000000000000 HAL_DMA_Start_IT /tmp/ccwgRvGR.s:779 .text.HAL_DMA_Abort:0000000000000000 $t /tmp/ccwgRvGR.s:786 .text.HAL_DMA_Abort:0000000000000000 HAL_DMA_Abort /tmp/ccwgRvGR.s:900 .text.HAL_DMA_Abort_IT:0000000000000000 $t /tmp/ccwgRvGR.s:907 .text.HAL_DMA_Abort_IT:0000000000000000 HAL_DMA_Abort_IT /tmp/ccwgRvGR.s:946 .text.HAL_DMA_PollForTransfer:0000000000000000 $t /tmp/ccwgRvGR.s:953 .text.HAL_DMA_PollForTransfer:0000000000000000 HAL_DMA_PollForTransfer /tmp/ccwgRvGR.s:1170 .text.HAL_DMA_IRQHandler:0000000000000000 $t /tmp/ccwgRvGR.s:1177 .text.HAL_DMA_IRQHandler:0000000000000000 HAL_DMA_IRQHandler /tmp/ccwgRvGR.s:1504 .text.HAL_DMA_IRQHandler:00000000000001d4 $d /tmp/ccwgRvGR.s:1510 .text.HAL_DMA_RegisterCallback:0000000000000000 $t /tmp/ccwgRvGR.s:1517 .text.HAL_DMA_RegisterCallback:0000000000000000 HAL_DMA_RegisterCallback /tmp/ccwgRvGR.s:1557 .text.HAL_DMA_RegisterCallback:000000000000002c $d /tmp/ccwgRvGR.s:1563 .text.HAL_DMA_RegisterCallback:0000000000000032 $t /tmp/ccwgRvGR.s:1619 .text.HAL_DMA_UnRegisterCallback:0000000000000000 $t /tmp/ccwgRvGR.s:1626 .text.HAL_DMA_UnRegisterCallback:0000000000000000 HAL_DMA_UnRegisterCallback /tmp/ccwgRvGR.s:1664 .text.HAL_DMA_UnRegisterCallback:000000000000002c $d /tmp/ccwgRvGR.s:1754 .text.HAL_DMA_GetState:0000000000000000 $t /tmp/ccwgRvGR.s:1761 .text.HAL_DMA_GetState:0000000000000000 HAL_DMA_GetState /tmp/ccwgRvGR.s:1778 .text.HAL_DMA_GetError:0000000000000000 $t /tmp/ccwgRvGR.s:1785 .text.HAL_DMA_GetError:0000000000000000 HAL_DMA_GetError /tmp/ccwgRvGR.s:1802 .rodata.flagBitshiftOffset.7620:0000000000000000 $d /tmp/ccwgRvGR.s:1806 .rodata.flagBitshiftOffset.7620:0000000000000000 flagBitshiftOffset.7620 .debug_frame:0000000000000010 $d /tmp/ccwgRvGR.s:1671 .text.HAL_DMA_UnRegisterCallback:0000000000000033 $d /tmp/ccwgRvGR.s:1671 .text.HAL_DMA_UnRegisterCallback:0000000000000034 $t UNDEFINED SYMBOLS HAL_GetTick SystemCoreClock