140 #ifdef HAL_DMA2D_MODULE_ENABLED 151 #define DMA2D_TIMEOUT_ABORT ((uint32_t)1000) 152 #define DMA2D_TIMEOUT_SUSPEND ((uint32_t)1000) 160 #define DMA2D_POSITION_FGPFCCR_CS (uint32_t)POSITION_VAL(DMA2D_FGPFCCR_CS) 161 #define DMA2D_POSITION_BGPFCCR_CS (uint32_t)POSITION_VAL(DMA2D_BGPFCCR_CS) 163 #define DMA2D_POSITION_FGPFCCR_CCM (uint32_t)POSITION_VAL(DMA2D_FGPFCCR_CCM) 164 #define DMA2D_POSITION_BGPFCCR_CCM (uint32_t)POSITION_VAL(DMA2D_BGPFCCR_CCM) 166 #define DMA2D_POSITION_OPFCCR_AI (uint32_t)POSITION_VAL(DMA2D_OPFCCR_AI) 167 #define DMA2D_POSITION_FGPFCCR_AI (uint32_t)POSITION_VAL(DMA2D_FGPFCCR_AI) 168 #define DMA2D_POSITION_BGPFCCR_AI (uint32_t)POSITION_VAL(DMA2D_BGPFCCR_AI) 170 #define DMA2D_POSITION_OPFCCR_RBS (uint32_t)POSITION_VAL(DMA2D_OPFCCR_RBS) 171 #define DMA2D_POSITION_FGPFCCR_RBS (uint32_t)POSITION_VAL(DMA2D_FGPFCCR_RBS) 172 #define DMA2D_POSITION_BGPFCCR_RBS (uint32_t)POSITION_VAL(DMA2D_BGPFCCR_RBS) 174 #define DMA2D_POSITION_AMTCR_DT (uint32_t)POSITION_VAL(DMA2D_AMTCR_DT) 176 #define DMA2D_POSITION_FGPFCCR_AM (uint32_t)POSITION_VAL(DMA2D_FGPFCCR_AM) 177 #define DMA2D_POSITION_BGPFCCR_AM (uint32_t)POSITION_VAL(DMA2D_BGPFCCR_AM) 179 #define DMA2D_POSITION_FGPFCCR_ALPHA (uint32_t)POSITION_VAL(DMA2D_FGPFCCR_ALPHA) 180 #define DMA2D_POSITION_BGPFCCR_ALPHA (uint32_t)POSITION_VAL(DMA2D_BGPFCCR_ALPHA) 182 #define DMA2D_POSITION_NLR_PL (uint32_t)POSITION_VAL(DMA2D_NLR_PL) 198 static void DMA2D_SetConfig(
DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height);
265 #if defined (DMA2D_OPFCCR_AI) 270 #if defined (DMA2D_OPFCCR_RBS) 462 DMA2D_SetConfig(hdma2d, pdata, DstAddress, Width, Height);
496 DMA2D_SetConfig(hdma2d, pdata, DstAddress, Width, Height);
534 DMA2D_SetConfig(hdma2d, SrcAddress1, DstAddress, Width, Height);
569 DMA2D_SetConfig(hdma2d, SrcAddress1, DstAddress, Width, Height);
588 uint32_t tickstart = 0;
602 if((
HAL_GetTick() - tickstart ) > DMA2D_TIMEOUT_ABORT)
637 uint32_t tickstart = 0;
652 if((
HAL_GetTick() - tickstart ) > DMA2D_TIMEOUT_SUSPEND)
772 ((CLUTCfg.
Size << DMA2D_POSITION_BGPFCCR_CS) | (CLUTCfg.
CLUTColorMode << DMA2D_POSITION_BGPFCCR_CCM)));
785 ((CLUTCfg.
Size << DMA2D_POSITION_BGPFCCR_CS) | (CLUTCfg.
CLUTColorMode << DMA2D_POSITION_FGPFCCR_CCM)));
826 ((CLUTCfg.
Size << DMA2D_POSITION_BGPFCCR_CS) | (CLUTCfg.
CLUTColorMode << DMA2D_POSITION_BGPFCCR_CCM)));
842 ((CLUTCfg.
Size << DMA2D_POSITION_BGPFCCR_CS) | (CLUTCfg.
CLUTColorMode << DMA2D_POSITION_FGPFCCR_CCM)));
865 uint32_t tickstart = 0;
884 if((
HAL_GetTick() - tickstart ) > DMA2D_TIMEOUT_ABORT)
922 uint32_t tickstart = 0;
939 && ((*reg & DMA2D_BGPFCCR_START) == DMA2D_BGPFCCR_START))
941 if((
HAL_GetTick() - tickstart ) > DMA2D_TIMEOUT_SUSPEND)
954 if ((*reg & DMA2D_BGPFCCR_START) !=
RESET)
984 && ((hdma2d->
Instance->
BGPFCCR & DMA2D_BGPFCCR_START) == DMA2D_BGPFCCR_START))
1018 uint32_t tickstart = 0;
1019 __IO uint32_t isrflags = 0x0;
1054 if((Timeout == 0)||((
HAL_GetTick() - tickstart ) > Timeout))
1086 if ((isrflags & DMA2D_FLAG_CE) !=
RESET)
1108 if((Timeout == 0)||((
HAL_GetTick() - tickstart ) > Timeout))
1175 if ((isrflags & DMA2D_FLAG_CE) !=
RESET)
1202 if ((isrflags & DMA2D_FLAG_CAE) !=
RESET)
1366 uint32_t regMask = 0, regValue = 0;
1392 #if defined (DMA2D_FGPFCCR_AI) && defined (DMA2D_BGPFCCR_AI) 1393 regValue |= (pLayerCfg->AlphaInverted << DMA2D_POSITION_BGPFCCR_AI);
1397 #if defined (DMA2D_FGPFCCR_RBS) && defined (DMA2D_BGPFCCR_RBS) 1398 regValue |= (pLayerCfg->RedBlueSwap << DMA2D_POSITION_BGPFCCR_RBS);
1408 regValue |= (pLayerCfg->
InputAlpha << DMA2D_POSITION_BGPFCCR_ALPHA);
1482 ((CLUTCfg.
Size << DMA2D_POSITION_BGPFCCR_CS) | (CLUTCfg.
CLUTColorMode << DMA2D_POSITION_BGPFCCR_CCM)));
1492 ((CLUTCfg.
Size << DMA2D_POSITION_BGPFCCR_CS) | (CLUTCfg.
CLUTColorMode << DMA2D_POSITION_FGPFCCR_CCM)));
1649 return hdma2d->
State;
1686 static void DMA2D_SetConfig(
DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height)
1711 tmp = (tmp3 | tmp2 | tmp1| tmp4);
1715 tmp = (tmp3 | tmp2 | tmp4);
1719 tmp2 = (tmp2 >> 19);
1720 tmp3 = (tmp3 >> 10);
1721 tmp4 = (tmp4 >> 3 );
1722 tmp = ((tmp3 << 5) | (tmp2 << 11) | tmp4);
1726 tmp1 = (tmp1 >> 31);
1727 tmp2 = (tmp2 >> 19);
1728 tmp3 = (tmp3 >> 11);
1729 tmp4 = (tmp4 >> 3 );
1730 tmp = ((tmp3 << 5) | (tmp2 << 10) | (tmp1 << 15) | tmp4);
1734 tmp1 = (tmp1 >> 28);
1735 tmp2 = (tmp2 >> 20);
1736 tmp3 = (tmp3 >> 12);
1737 tmp4 = (tmp4 >> 4 );
1738 tmp = ((tmp3 << 4) | (tmp2 << 8) | (tmp1 << 12) | tmp4);
#define CLEAR_BIT(REG, BIT)
#define MODIFY_REG(REG, CLEARMASK, SETMASK)
#define DMA2D_BGPFCCR_CCM
#define DMA2D_BGCOLR_BLUE
#define HAL_DMA2D_ERROR_TE
#define __HAL_DMA2D_ENABLE_IT(__HANDLE__, __INTERRUPT__)
Enable the specified DMA2D interrupts.
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Resume(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
HAL_StatusTypeDef HAL_DMA2D_Suspend(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_Start_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height)
#define IS_DMA2D_LINEWATERMARK(LineWatermark)
#define DMA2D_OUTPUT_RGB888
#define DMA2D_BGPFCCR_ALPHA
HAL_StatusTypeDef HAL_DMA2D_Start(DMA2D_HandleTypeDef *hdma2d, uint32_t pdata, uint32_t DstAddress, uint32_t Width, uint32_t Height)
#define assert_param(expr)
Include module's header file.
#define DMA2D_OCOLR_BLUE_1
#define HAL_DMA2D_ERROR_TIMEOUT
#define HAL_DMA2D_ERROR_CAE
#define DMA2D_OCOLR_GREEN_1
#define __HAL_UNLOCK(__HANDLE__)
DMA2D CLUT Structure definition.
#define DMA2D_OUTPUT_RGB565
#define __HAL_DMA2D_CLEAR_FLAG(__HANDLE__, __FLAG__)
Clear the DMA2D pending flags.
#define IS_DMA2D_OFFSET(OOFFSET)
void(* XferErrorCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
#define WRITE_REG(REG, VAL)
#define IS_DMA2D_ALL_INSTANCE(__INSTANCE__)
#define IS_DMA2D_LINE(LINE)
HAL_StatusTypeDef HAL_DMA2D_ConfigDeadTime(DMA2D_HandleTypeDef *hdma2d, uint8_t DeadTime)
void HAL_DMA2D_IRQHandler(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_ConfigLayer(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
HAL_StatusTypeDef HAL_DMA2D_CLUTLoad(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx)
#define __HAL_DMA2D_GET_FLAG(__HANDLE__, __FLAG__)
Get the DMA2D pending flags.
#define __HAL_LOCK(__HANDLE__)
void HAL_DMA2D_MspInit(DMA2D_HandleTypeDef *hdma2d)
#define HAL_DMA2D_ERROR_NONE
HAL_StatusTypeDef HAL_DMA2D_Init(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Suspend(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
void(* XferCpltCallback)(struct __DMA2D_HandleTypeDef *hdma2d)
#define DMA2D_OUTPUT_ARGB8888
DMA2D Layer structure definition.
#define HAL_DMA2D_ERROR_CE
This file contains all the functions prototypes for the HAL module driver.
#define DMA2D_OUTPUT_ARGB1555
#define __HAL_RCC_DMA2D_IS_CLK_ENABLED()
#define DMA2D_FGCOLR_GREEN
__IO HAL_DMA2D_StateTypeDef State
#define DMA2D_OCOLR_RED_1
uint32_t HAL_DMA2D_GetError(DMA2D_HandleTypeDef *hdma2d)
void HAL_DMA2D_LineEventCallback(DMA2D_HandleTypeDef *hdma2d)
#define DMA2D_BGPFCCR_RBS
HAL_DMA2D_StateTypeDef HAL_DMA2D_GetState(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_DeInit(DMA2D_HandleTypeDef *hdma2d)
void HAL_DMA2D_MspDeInit(DMA2D_HandleTypeDef *hdma2d)
#define IS_DMA2D_CLUT_SIZE(CLUT_SIZE)
HAL_StatusTypeDef HAL_DMA2D_EnableCLUT(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
#define __HAL_DMA2D_DISABLE_IT(__HANDLE__, __INTERRUPT__)
Disable the specified DMA2D interrupts.
HAL_StatusTypeDef HAL_DMA2D_DisableDeadTime(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_CLUTLoading_Abort(DMA2D_HandleTypeDef *hdma2d, uint32_t LayerIdx)
#define DMA2D_FGCOLR_BLUE
#define SET_BIT(REG, BIT)
#define IS_DMA2D_CLUT_CM(CLUT_CM)
HAL_DMA2D_StateTypeDef
HAL DMA2D State structures definition.
HAL_StatusTypeDef HAL_DMA2D_ConfigCLUT(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx)
#define DMA2D_FGPFCCR_CCM
HAL_StatusTypeDef HAL_DMA2D_EnableDeadTime(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_PollForTransfer(DMA2D_HandleTypeDef *hdma2d, uint32_t Timeout)
#define IS_DMA2D_PIXEL(PIXEL)
#define __HAL_DMA2D_ENABLE(__HANDLE__)
Enable the DMA2D.
HAL_StatusTypeDef HAL_DMA2D_BlendingStart(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2, uint32_t DstAddress, uint32_t Width, uint32_t Height)
HAL_StatusTypeDef HAL_DMA2D_Abort(DMA2D_HandleTypeDef *hdma2d)
#define IS_DMA2D_MODE(MODE)
#define IS_DMA2D_INPUT_COLOR_MODE(INPUT_CM)
#define DMA2D_OCOLR_ALPHA_1
HAL_StatusTypeDef HAL_DMA2D_ProgramLineEvent(DMA2D_HandleTypeDef *hdma2d, uint32_t Line)
HAL_StatusTypeDef
HAL Status structures definition.
uint32_t HAL_GetTick(void)
Provides a tick value in millisecond.
#define IS_DMA2D_CMODE(MODE_ARGB)
#define IS_DMA2D_ALPHA_MODE(AlphaMode)
HAL_StatusTypeDef HAL_DMA2D_BlendingStart_IT(DMA2D_HandleTypeDef *hdma2d, uint32_t SrcAddress1, uint32_t SrcAddress2, uint32_t DstAddress, uint32_t Width, uint32_t Height)
#define IS_DMA2D_LAYER(LAYER)
#define DMA2D_BGPFCCR_START
HAL_StatusTypeDef HAL_DMA2D_CLUTLoad_IT(DMA2D_HandleTypeDef *hdma2d, DMA2D_CLUTCfgTypeDef CLUTCfg, uint32_t LayerIdx)
#define DMA2D_BGCOLR_GREEN
void HAL_DMA2D_CLUTLoadingCpltCallback(DMA2D_HandleTypeDef *hdma2d)
HAL_StatusTypeDef HAL_DMA2D_Resume(DMA2D_HandleTypeDef *hdma2d)
DMA2D_LayerCfgTypeDef LayerCfg[MAX_DMA2D_LAYER]
DMA2D handle Structure definition.
#define DMA2D_FGPFCCR_START