JiriKlokocka / STM32F103C8T6_CubeMX_ILI9341_LVGL

Runing lvgl graphic library at BluePill with ILI display, using CubeIDE, CubeMX
6 stars 1 forks source link

Problem when trying to enable DMA #1

Open GunterO opened 3 years ago

GunterO commented 3 years ago

Hello. Thank you for sharing your code. All is running fine, but when I try to enable DMA (in lvgl_init_f103.c):

define USE_DMA 1

define USE_DMA_IRQ 0

I get errors: error: 'LCD_BASE1' undeclared

I tried with (found somewhere for ili9341):

define LCD_BASE0 ((uint32_t)0x60000000)

define LCD_BASE1 ((uint32_t)0x60080000)

But then I get the error: undefined reference to `hdma_memtomem_dma2_stream0'

Did you were able to enable DMA? Thanks!

JiriKlokocka commented 3 years ago

Hello Gunter, the DMA portion of code is actually rest of the project with STM32F407 + ILI9341 connected using parallel interface. This is using SPI. I don't remember now if I used DMA in this project. Lookm at main.c if the DMA is even defined. But in general, it should be possible, but you have to configure DMA in CUBEMX. Also question is, if it is faster...

Jiri Klokocka +420 602 305 016 jiri@klokocka.info www.klokocka.info

https://www.klokocka.info

On Sun, 31 Jan 2021 at 18:29, GunterO notifications@github.com wrote:

Hello. Thank you for sharing your code. All is running fine, but when I try to enable DMA (in lvgl_init_f103.c):

define USE_DMA 1

define USE_DMA_IRQ 0

I get errors: error: 'LCD_BASE1' undeclared

I tried with (found somewhere for ili9341):

define LCD_BASE0 ((uint32_t)0x60000000)

define LCD_BASE1 ((uint32_t)0x60080000)

But then I get the error: undefined reference to `hdma_memtomem_dma2_stream0'

Did you were able to enable DMA? Thanks!

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/JiriKlokocka/STM32F103C8T6_CubeMX_ILI9341_LVGL/issues/1, or unsubscribe https://github.com/notifications/unsubscribe-auth/AGHTJOYXHYGFH4MKYXOQ6TTS4WHQFANCNFSM4W3RN26Q .

GunterO commented 3 years ago

Hello Jiri, thank you for your reply. Well, for basic line/circle drawings, it wouldn't be much faster, but I intend to use your driver with LittleVGL, and they only need a function to draw a rectangular area of the screen (if not completely) with pixel data in a buffer, and for this makes DMA a huge difference in speed, besides freeing the CPU for other tasks.

FantasyGmm commented 2 years ago

If it is the DMA code generated by Cubemx, then you can check the DMA initialization code in SPI.c, hdma_memtomem_dma2_stream0 should be hspi2.hdmatx, please check the code you generated