cancel
Showing results for 
Search instead for 
Did you mean: 

Artifacts only on the active screen

RJasz
Associate II

Hi everybody!

I am facing a strange problem - I see artifacts on the screen, but only if it is on the active screen- if a new screen with transparent background fade in, the old one (below) is fine and a new one is still with the artifacts!

I am using LTDC with DMA2d on STM32H7A3. Timings are ok.

Ideas what could be wrong?

https://www.youtube.com/watch?v=O5FKZxjEHus

1 REPLY 1
RJasz
Associate II

Solution (it points a whole internal RAM memory):

void MPU_Config(void)

{

 MPU_Region_InitTypeDef MPU_InitStruct = {0};

 /* Disables the MPU */

 HAL_MPU_Disable();

 /** Initializes and configures the Region and the memory to be protected

 */

 MPU_InitStruct.Enable = MPU_REGION_ENABLE;

 MPU_InitStruct.Number = MPU_REGION_NUMBER0;

 MPU_InitStruct.BaseAddress = 0x24000000;

 MPU_InitStruct.Size = MPU_REGION_SIZE_2MB;

 MPU_InitStruct.SubRegionDisable = 0x0;

 MPU_InitStruct.TypeExtField = MPU_TEX_LEVEL0;

 MPU_InitStruct.AccessPermission = MPU_REGION_FULL_ACCESS;

 MPU_InitStruct.DisableExec = MPU_INSTRUCTION_ACCESS_DISABLE;

 MPU_InitStruct.IsShareable = MPU_ACCESS_NOT_SHAREABLE;

 MPU_InitStruct.IsCacheable = MPU_ACCESS_CACHEABLE;

 MPU_InitStruct.IsBufferable = MPU_ACCESS_NOT_BUFFERABLE;

 HAL_MPU_ConfigRegion(&MPU_InitStruct);

 /* Enables the MPU */

 HAL_MPU_Enable(MPU_PRIVILEGED_DEFAULT);

}