Mula-Gabriel / STM32F7508-DK-LVGL-AzureRtos-Template

MIT License
1 stars 0 forks source link

How to implement DMA2D?. #1

Open anand-010 opened 8 months ago

anand-010 commented 8 months ago

I've followed this guide https://forum.lvgl.io/t/how-to-configure-the-dma2d/3407/5 and added

/* 1: Enable GPU interface*/
#define LV_USE_GPU 0 /*Only enables gpu_fill_cb and gpu_blend_cb in the disp. drv- */
#define LV_USE_GPU_STM32_DMA2D 1
/*If enabling LV_USE_GPU_STM32_DMA2D, LV_GPU_DMA2D_CMSIS_INCLUDE must be defined to include path of CMSIS header of target processor
e.g. “stm32f769xx.h” or “stm32f429xx.h” */
#define LV_GPU_DMA2D_CMSIS_INCLUDE <stm32f7xx.h>

but i've got this error.

../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:346:38: error: 'DMA2D_OPFCCR_RBS_Pos' undeclared (first use in this function); did you mean 'DMA2D_OPFCCR_CM_Pos'?
  346 |         DMA2D->OPFCCR |= (RBS_BIT << DMA2D_OPFCCR_RBS_Pos);
      |                                      ^~~~~~~~~~~~~~~~~~~~
      |                                      DMA2D_OPFCCR_CM_Pos
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:346:38: note: each undeclared identifier is reported only once for each function it appears in
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:373:39: error: 'DMA2D_BGPFCCR_RBS_Pos' undeclared (first use in this function); did you mean 'DMA2D_BGPFCCR_CS_Pos'?
  373 |         DMA2D->BGPFCCR |= (RBS_BIT << DMA2D_BGPFCCR_RBS_Pos);
      |                                       ^~~~~~~~~~~~~~~~~~~~~
      |                                       DMA2D_BGPFCCR_CS_Pos
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c: In function '_lv_draw_stm32_dma2d_blend_map':
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:458:35: error: 'DMA2D_FGPFCCR_RBS_Pos' undeclared (first use in this function); did you mean 'DMA2D_FGPFCCR_CS_Pos'?
  458 |     DMA2D->FGPFCCR |= (RBS_BIT << DMA2D_FGPFCCR_RBS_Pos);
      |                                   ^~~~~~~~~~~~~~~~~~~~~
      |                                   DMA2D_FGPFCCR_CS_Pos
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:465:34: error: 'DMA2D_OPFCCR_RBS_Pos' undeclared (first use in this function); did you mean 'DMA2D_OPFCCR_CM_Pos'?
  465 |     DMA2D->OPFCCR |= (RBS_BIT << DMA2D_OPFCCR_RBS_Pos);
      |                                  ^~~~~~~~~~~~~~~~~~~~
      |                                  DMA2D_OPFCCR_CM_Pos
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:473:39: error: 'DMA2D_BGPFCCR_RBS_Pos' undeclared (first use in this function); did you mean 'DMA2D_BGPFCCR_CS_Pos'?
  473 |         DMA2D->BGPFCCR |= (RBS_BIT << DMA2D_BGPFCCR_RBS_Pos);
      |                                       ^~~~~~~~~~~~~~~~~~~~~
      |                                       DMA2D_BGPFCCR_CS_Pos
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c: In function '_lv_draw_stm32_dma2d_blend_paint':
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:517:35: error: 'DMA2D_BGPFCCR_RBS_Pos' undeclared (first use in this function); did you mean 'DMA2D_BGPFCCR_CS_Pos'?
  517 |     DMA2D->BGPFCCR |= (RBS_BIT << DMA2D_BGPFCCR_RBS_Pos);
      |                                   ^~~~~~~~~~~~~~~~~~~~~
      |                                   DMA2D_BGPFCCR_CS_Pos
arm-none-eabi-gcc "../lvgl/src/draw/sdl/lv_draw_sdl_bg.c" -mcpu=cortex-m7 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F750xx -DTX_INCLUDE_USER_DEFINE_FILE -DSTM32 -DSTM32F7 -DDEBUG -c -I../Core/Inc -I"C:/Users/anand/Music/STM32F7508-DK-LVGL-AzureRtos-Template/Template" -I../Drivers/STM32F7xx_HAL_Driver/Inc -I../Drivers/STM32F7xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F7xx/Include -I../Drivers/CMSIS/Include -I../AZURE_RTOS/App -I../Middlewares/ST/threadx/common/inc/ -I../Middlewares/ST/threadx/ports/cortex_m7/gnu/inc/ -I"C:/Users/anand/Music/STM32F7508-DK-LVGL-AzureRtos-Template/Template/Drivers/BSP/STM32F7508-Discovery" -O3 -ffunction-sections -Wall -fstack-usage -fcyclomatic-complexity -MMD -MP -MF"lvgl/src/draw/sdl/lv_draw_sdl_bg.d" -MT"lvgl/src/draw/sdl/lv_draw_sdl_bg.o" --specs=nano.specs -mfpu=fpv5-sp-d16 -mfloat-abi=hard -mthumb -o "lvgl/src/draw/sdl/lv_draw_sdl_bg.o"
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:524:34: error: 'DMA2D_OPFCCR_RBS_Pos' undeclared (first use in this function); did you mean 'DMA2D_OPFCCR_CM_Pos'?
  524 |     DMA2D->OPFCCR |= (RBS_BIT << DMA2D_OPFCCR_RBS_Pos);
      |                                  ^~~~~~~~~~~~~~~~~~~~
      |                                  DMA2D_OPFCCR_CM_Pos
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c: In function '_lv_draw_stm32_dma2d_copy_buffer':
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:550:35: error: 'DMA2D_FGPFCCR_RBS_Pos' undeclared (first use in this function); did you mean 'DMA2D_FGPFCCR_CS_Pos'?
  550 |     DMA2D->FGPFCCR |= (RBS_BIT << DMA2D_FGPFCCR_RBS_Pos);
      |                                   ^~~~~~~~~~~~~~~~~~~~~
      |                                   DMA2D_FGPFCCR_CS_Pos
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:559:34: error: 'DMA2D_OPFCCR_RBS_Pos' undeclared (first use in this function); did you mean 'DMA2D_OPFCCR_CM_Pos'?
  559 |     DMA2D->OPFCCR |= (RBS_BIT << DMA2D_OPFCCR_RBS_Pos);
      |                                  ^~~~~~~~~~~~~~~~~~~~
      |                                  DMA2D_OPFCCR_CM_Pos
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c: In function '_lv_gpu_stm32_dwt_get_us':
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:709:45: warning: implicit declaration of function 'HAL_RCC_GetHCLKFreq' [-Wimplicit-function-declaration]
  709 |     uint32_t us = (DWT->CYCCNT * 1000000) / HAL_RCC_GetHCLKFreq();
      |                                             ^~~~~~~~~~~~~~~~~~~
At top level:
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:714:28: warning: '_lv_gpu_stm32_dwt_reset' defined but not used [-Wunused-function]
  714 | LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dwt_reset(void)
      |                            ^~~~~~~~~~~~~~~~~~~~~~~
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:707:32: warning: '_lv_gpu_stm32_dwt_get_us' defined but not used [-Wunused-function]
  707 | LV_STM32_DMA2D_STATIC uint32_t _lv_gpu_stm32_dwt_get_us(void)
      |                                ^~~~~~~~~~~~~~~~~~~~~~~~
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:675:28: warning: '_lv_gpu_stm32_dwt_init' defined but not used [-Wunused-function]
  675 | LV_STM32_DMA2D_STATIC bool _lv_gpu_stm32_dwt_init(void)
      |                            ^~~~~~~~~~~~~~~~~~~~~~
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:615:28: warning: '_lv_gpu_stm32_dma2d_invalidate_cache' defined but not used [-Wunused-function]
  615 | LV_STM32_DMA2D_STATIC void _lv_gpu_stm32_dma2d_invalidate_cache(uint32_t address, lv_coord_t offset, lv_coord_t width,
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:538:28: warning: '_lv_draw_stm32_dma2d_copy_buffer' defined but not used [-Wunused-function]
  538 | LV_STM32_DMA2D_STATIC void _lv_draw_stm32_dma2d_copy_buffer(const lv_color_t * dest_buf, lv_coord_t dest_stride,
      |                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:318:13: warning: 'lv_gpu_stm32_dma2d_wait_cb' defined but not used [-Wunused-function]
  318 | static void lv_gpu_stm32_dma2d_wait_cb(lv_draw_ctx_t * draw_ctx)
      |             ^~~~~~~~~~~~~~~~~~~~~~~~~~
../lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.c:279:17: warning: 'lv_draw_stm32_dma2d_img' defined but not used [-Wunused-function]
  279 | static lv_res_t lv_draw_stm32_dma2d_img(lv_draw_ctx_t * draw_ctx, const lv_draw_img_dsc_t * img_dsc,
      |                 ^~~~~~~~~~~~~~~~~~~~~~~
make: *** [lvgl/src/draw/stm32_dma2d/subdir.mk:19: lvgl/src/draw/stm32_dma2d/lv_gpu_stm32_dma2d.o] Error 1
make: *** Waiting for unfinished jobs....
"make -j4 all" terminated with exit code 2. Build might be incomplete.

do you have any idea how to implement dma2d?.

anand-010 commented 8 months ago

I've changed every DMA2D_OPFCCR_RBS_Pos fro RBS to CM like DMA2D_OPFCCR_CM_Pos now all errors gone but still has the same lag. i don't know how two elf files combined together. i am missing something?.