Let me provide a little more background on where my EmWi project integration is at.
I have seen the TargetSpecific FreeRTOS macros and made equivalent changes suited to our SMX RTOS in ew_bsp_display.c, ew_bsp_event.c, ew_bsp_graphics.c and ew_bsp_system.c. I have also split up the sample main into low level system init called before SMX RTOS is started then start a task for EmWiMainLoop later on. The SMX RTOS takes care of the system tick, RTC and serial setup so I only call EwBspConfigSystem from __low_level_init which IAR invokes before main. It was needed to avoid some of the MPU/SDRAM init since our project code and data is running from SDRAM rather than ROM. In RTE I make changes to direct EwAlloc and EwFree to the SMX heap and EwPrint to the SMX console routines.
When debugging with IAR EWARM I can see that both the DMA2D and the DSI interrupts are operational and the SMX RTOS semaphores and tasks appear to work together properly.
But the LTDC interrupt is not, and the IRQ handler looks a little odd to me.
void LTDC_IRQHandler( void )
void LTDC_ER_IRQHandler( void )
void DSI_IRQHandler( void )
HAL_DSI_IRQHandler( &hdsi_handle );
Looking into BSP_LCD_LTDC_IRQHandler is see it is defined like this:
/** @defgroup STM32F769I_EVAL_LCD_Exported_Constants STM32F769I EVAL LCD Exported Constants
#define BSP_LCD_DMA2D_IRQHandler DMA2D_IRQHandler
#define BSP_LCD_DSI_IRQHandler DSI_IRQHandler
#define BSP_LCD_LTDC_IRQHandler LTDC_IRQHandler
#define BSP_LCD_LTDC_ER_IRQHandler LTDC_ER_IRQHandler
It would seem the ISR handler calls itself in a one way trip to stack overflow land.
But as I mentioned for me this LTDC ISR handler is never called in any case even though I hooked up the vector in the same manner as the DSI and DMA2D IRQs.
Thanks for the help.
P.S. The tearing effect can be seen below from a video still as the screen changes from red to green with the white text pixels appearing to spread across the right had side of the glass.