123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306 |
- /**
- ******************************************************************************
- * @file stm32l4xx_hal_gfxmmu.h
- * @author MCD Application Team
- * @brief Header file of GFXMMU HAL module.
- ******************************************************************************
- * @attention
- *
- * <h2><center>© COPYRIGHT(c) 2017 STMicroelectronics</center></h2>
- *
- * Redistribution and use in source and binary forms, with or without modification,
- * are permitted provided that the following conditions are met:
- * 1. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- ******************************************************************************
- */
- /* Define to prevent recursive inclusion -------------------------------------*/
- #ifndef __STM32L4xx_HAL_GFXMMU_H
- #define __STM32L4xx_HAL_GFXMMU_H
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* Includes ------------------------------------------------------------------*/
- #include "stm32l4xx_hal_def.h"
- #if defined(GFXMMU)
- /** @addtogroup STM32L4xx_HAL_Driver
- * @{
- */
- /** @addtogroup GFXMMU
- * @{
- */
- /* Exported types ------------------------------------------------------------*/
- /** @defgroup GFXMMU_Exported_Types GFXMMU Exported Types
- * @{
- */
- /**
- * @brief HAL GFXMMU states definition
- */
- typedef enum
- {
- HAL_GFXMMU_STATE_RESET = 0x00U, /*!< GFXMMU not initialized */
- HAL_GFXMMU_STATE_READY = 0x01U, /*!< GFXMMU initialized and ready for use */
- }HAL_GFXMMU_StateTypeDef;
- /**
- * @brief GFXMMU buffers structure definition
- */
- typedef struct
- {
- uint32_t Buf0Address; /*!< Physical address of buffer 0. */
- uint32_t Buf1Address; /*!< Physical address of buffer 1. */
- uint32_t Buf2Address; /*!< Physical address of buffer 2. */
- uint32_t Buf3Address; /*!< Physical address of buffer 3. */
- }GFXMMU_BuffersTypeDef;
- /**
- * @brief GFXMMU interrupts structure definition
- */
- typedef struct
- {
- FunctionalState Activation; /*!< Interrupts enable/disable */
- uint32_t UsedInterrupts; /*!< Interrupts used.
- This parameter can be a values combination of @ref GFXMMU_Interrupts.
- @note: Usefull only when interrupts are enabled. */
- }GFXMMU_InterruptsTypeDef;
- /**
- * @brief GFXMMU init structure definition
- */
- typedef struct
- {
- uint32_t BlocksPerLine; /*!< Number of blocks of 16 bytes per line.
- This parameter can be a value of @ref GFXMMU_BlocksPerLine. */
- uint32_t DefaultValue; /*!< Value returned when virtual memory location not physically mapped. */
- GFXMMU_BuffersTypeDef Buffers; /*!< Physical buffers addresses. */
- GFXMMU_InterruptsTypeDef Interrupts; /*!< Interrupts parameters. */
- }GFXMMU_InitTypeDef;
- /**
- * @brief GFXMMU handle structure definition
- */
- typedef struct
- {
- GFXMMU_TypeDef *Instance; /*!< GFXMMU instance */
- GFXMMU_InitTypeDef Init; /*!< GFXMMU init parameters */
- HAL_GFXMMU_StateTypeDef State; /*!< GFXMMU state */
- __IO uint32_t ErrorCode; /*!< GFXMMU error code */
- }GFXMMU_HandleTypeDef;
- /**
- * @brief GFXMMU LUT line structure definition
- */
- typedef struct
- {
- uint32_t LineNumber; /*!< LUT line number.
- This parameter must be a number between Min_Data = 0 and Max_Data = 1023. */
- uint32_t LineStatus; /*!< LUT line enable/disable.
- This parameter can be a value of @ref GFXMMU_LutLineStatus. */
- uint32_t FirstVisibleBlock; /*!< First visible block on this line.
- This parameter must be a number between Min_Data = 0 and Max_Data = 255. */
- uint32_t LastVisibleBlock; /*!< Last visible block on this line.
- This parameter must be a number between Min_Data = 0 and Max_Data = 255. */
- int32_t LineOffset; /*!< Offset of block 0 of the current line in physical buffer.
- This parameter must be a number between Min_Data = -4080 and Max_Data = 4190208.
- @note: Line offset has to be computed with the following formula:
- LineOffset = [(Blocks already used) - (1st visible block)]*BlockSize. */
- }GFXMMU_LutLineTypeDef;
- /**
- * @}
- */
- /* End of exported types -----------------------------------------------------*/
- /* Exported constants --------------------------------------------------------*/
- /** @defgroup GFXMMU_Exported_Constants GFXMMU Exported Constants
- * @{
- */
- /** @defgroup GFXMMU_BlocksPerLine GFXMMU blocks per line
- * @{
- */
- #define GFXMMU_256BLOCKS 0x00000000U /*!< 256 blocks of 16 bytes per line */
- #define GFXMMU_192BLOCKS GFXMMU_CR_192BM /*!< 192 blocks of 16 bytes per line */
- /**
- * @}
- */
- /** @defgroup GFXMMU_Interrupts GFXMMU interrupts
- * @{
- */
- #define GFXMMU_AHB_MASTER_ERROR_IT GFXMMU_CR_AMEIE /*!< AHB master error interrupt */
- #define GFXMMU_BUFFER0_OVERFLOW_IT GFXMMU_CR_B0OIE /*!< Buffer 0 overflow interrupt */
- #define GFXMMU_BUFFER1_OVERFLOW_IT GFXMMU_CR_B1OIE /*!< Buffer 1 overflow interrupt */
- #define GFXMMU_BUFFER2_OVERFLOW_IT GFXMMU_CR_B2OIE /*!< Buffer 2 overflow interrupt */
- #define GFXMMU_BUFFER3_OVERFLOW_IT GFXMMU_CR_B3OIE /*!< Buffer 3 overflow interrupt */
- /**
- * @}
- */
- /** @defgroup GFXMMU_Error_Code GFXMMU Error Code
- * @{
- */
- #define GFXMMU_ERROR_NONE 0x00000000U /*!< No error */
- #define GFXMMU_ERROR_BUFFER0_OVERFLOW GFXMMU_SR_B0OF /*!< Buffer 0 overflow */
- #define GFXMMU_ERROR_BUFFER1_OVERFLOW GFXMMU_SR_B1OF /*!< Buffer 1 overflow */
- #define GFXMMU_ERROR_BUFFER2_OVERFLOW GFXMMU_SR_B2OF /*!< Buffer 2 overflow */
- #define GFXMMU_ERROR_BUFFER3_OVERFLOW GFXMMU_SR_B3OF /*!< Buffer 3 overflow */
- #define GFXMMU_ERROR_AHB_MASTER GFXMMU_SR_AMEF /*!< AHB master error */
- /**
- * @}
- */
- /** @defgroup GFXMMU_LutLineStatus GFXMMU LUT line status
- * @{
- */
- #define GFXMMU_LUT_LINE_DISABLE 0x00000000U /*!< LUT line disabled */
- #define GFXMMU_LUT_LINE_ENABLE GFXMMU_LUTxL_EN /*!< LUT line enabled */
- /**
- * @}
- */
- /**
- * @}
- */
- /* End of exported constants -------------------------------------------------*/
- /* Exported macros -----------------------------------------------------------*/
- /** @defgroup GFXMMU_Exported_Macros GFXMMU Exported Macros
- * @{
- */
- /** @brief Reset GFXMMU handle state.
- * @param __HANDLE__ GFXMMU handle.
- * @retval None
- */
- #define __HAL_GFXMMU_RESET_HANDLE_STATE(__HANDLE__) ((__HANDLE__)->State = HAL_GFXMMU_STATE_RESET)
- /**
- * @}
- */
- /* End of exported macros ----------------------------------------------------*/
- /* Exported functions --------------------------------------------------------*/
- /** @addtogroup GFXMMU_Exported_Functions GFXMMU Exported Functions
- * @{
- */
- /** @addtogroup GFXMMU_Exported_Functions_Group1 Initialization and de-initialization functions
- * @{
- */
- /* Initialization and de-initialization functions *****************************/
- HAL_StatusTypeDef HAL_GFXMMU_Init(GFXMMU_HandleTypeDef *hgfxmmu);
- HAL_StatusTypeDef HAL_GFXMMU_DeInit(GFXMMU_HandleTypeDef *hgfxmmu);
- void HAL_GFXMMU_MspInit(GFXMMU_HandleTypeDef *hgfxmmu);
- void HAL_GFXMMU_MspDeInit(GFXMMU_HandleTypeDef *hgfxmmu);
- /**
- * @}
- */
- /** @addtogroup GFXMMU_Exported_Functions_Group2 Operations functions
- * @{
- */
- /* Operation functions ********************************************************/
- HAL_StatusTypeDef HAL_GFXMMU_ConfigLut(GFXMMU_HandleTypeDef *hgfxmmu,
- uint32_t FirstLine,
- uint32_t LinesNumber,
- uint32_t Address);
- HAL_StatusTypeDef HAL_GFXMMU_DisableLutLines(GFXMMU_HandleTypeDef *hgfxmmu,
- uint32_t FirstLine,
- uint32_t LinesNumber);
- HAL_StatusTypeDef HAL_GFXMMU_ConfigLutLine(GFXMMU_HandleTypeDef *hgfxmmu, GFXMMU_LutLineTypeDef *lutLine);
- HAL_StatusTypeDef HAL_GFXMMU_ModifyBuffers(GFXMMU_HandleTypeDef *hgfxmmu, GFXMMU_BuffersTypeDef *Buffers);
- void HAL_GFXMMU_IRQHandler(GFXMMU_HandleTypeDef *hgfxmmu);
- void HAL_GFXMMU_ErrorCallback(GFXMMU_HandleTypeDef *hgfxmmu);
- /**
- * @}
- */
- /** @defgroup GFXMMU_Exported_Functions_Group3 State functions
- * @{
- */
- /* State function *************************************************************/
- HAL_GFXMMU_StateTypeDef HAL_GFXMMU_GetState(GFXMMU_HandleTypeDef *hgfxmmu);
- uint32_t HAL_GFXMMU_GetError(GFXMMU_HandleTypeDef *hgfxmmu);
- /**
- * @}
- */
- /**
- * @}
- */
- /* End of exported functions -------------------------------------------------*/
- /* Private macros ------------------------------------------------------------*/
- /** @defgroup GFXMMU_Private_Macros GFXMMU Private Macros
- * @{
- */
- #define IS_GFXMMU_BLOCKS_PER_LINE(VALUE) (((VALUE) == GFXMMU_256BLOCKS) || \
- ((VALUE) == GFXMMU_192BLOCKS))
- #define IS_GFXMMU_BUFFER_ADDRESS(VALUE) (((VALUE) & 0xFU) == 0U)
- #define IS_GFXMMU_INTERRUPTS(VALUE) (((VALUE) & 0x1FU) != 0U)
- #define IS_GFXMMU_LUT_LINE(VALUE) ((VALUE) < 1024U)
- #define IS_GFXMMU_LUT_LINES_NUMBER(VALUE) (((VALUE) > 0U) && ((VALUE) <= 1024U))
- #define IS_GFXMMU_LUT_LINE_STATUS(VALUE) (((VALUE) == GFXMMU_LUT_LINE_DISABLE) || \
- ((VALUE) == GFXMMU_LUT_LINE_ENABLE))
- #define IS_GFXMMU_LUT_BLOCK(VALUE) ((VALUE) < 256U)
- #define IS_GFXMMU_LUT_LINE_OFFSET(VALUE) (((VALUE) >= -4080) && ((VALUE) <= 4190208))
- /**
- * @}
- */
- /* End of private macros -----------------------------------------------------*/
- /**
- * @}
- */
- /**
- * @}
- */
- #endif /* GFXMMU */
- #ifdef __cplusplus
- }
- #endif
- #endif /* __STM32L4xx_HAL_GFXMMU_H */
- /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/
|