Skip to main content
pk84
Associate III
October 19, 2022
Question

https://github.com/lvgl/lv_port_stm32h745i_disco => to stm32h750b disco

  • October 19, 2022
  • 6 replies
  • 4758 views

I am trying to get the https://github.com/lvgl/lv_port_stm32h745i_disco to run on the STM32H750 instead of the H745 disco.

I have selected the external loader and at startup the corresponding project loader. In the main.c file of the disco port project I have removed the QSPI inits.

I replaced the linker script file with the content from the linker script of LTDC_Paint example for the STM32H750.

It compiles and flashes everything without errors, but nothing works, also no LED starts.

What else do I have to adjust or should I consider?

6 replies

Pavel A.
Super User
October 19, 2022

How do you expect the program to access the external flash after removal of QSPI init?

Have you tried to debug? 

Tesla DeLorean
Guru
October 19, 2022

Perhaps by doing the external memory initialization earlier, and in a loader, so as not to repeat, nor teardown the environment it's already executing in? H750 supposedly only has 128KB of FLASH

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
pk84
pk84Author
Associate III
October 19, 2022

see screenshot below of my setup.

the lv_port_stm32h745.. project is loaded on the external QSPI flash (with external loader), so of course it does not need any QSPI init.

In the internal flash I load the STM32H750B_DISCO project, which is the program that makes the QSPI init + jump to the main program on the QSPI.

This internal flash program I already tested with another project (LTDC_Paint) and it works fine...

So that with the QSPI, external loader I should have considered, have I forgotten anything else?

I have no error, but even though nothing happens, no LED blinking, nothing...

0693W00000UoN0KQAV.png

Tesla DeLorean
Guru
October 19, 2022

Check the .LD file is building for the right memory space.

That SystemInit() points SCB->VTOR to the basis in memory where the vector table resides. Ideally use a symbol so that it just inherits the basis the linker is using auto-magically, instead of the stupidity ST uses..

extern uint32_t *__Vectors; // KEIL

SCB->VTOR = (uint32_t)&__Vectors;

extern uint32_t *g_pfnVectors; // GNU/GCC

SCB->VTOR = (uint32_t)&g_pfnVectors;

Tips, Buy me a coffee, or three.. PayPal VenmoUp vote any posts that you find helpful, it shows what's working..
Pavel A.
Super User
October 19, 2022

Won't it be a good idea to copy the vectors to internal RAM?

pk84
pk84Author
Associate III
October 20, 2022

as mentioned in the beginning, I replaced the linkerscript content of the lv_port project (STM32H745XIHX_FLASH.ld) with the content of the linker from the LTDC_Paint project STM32H750XBHx_FLASH.ld.

The LTDC_Paint project I could already test on external QSPI, and it works... so I assume the the linkerscript content should be correct, or is this wrong?

But maybe something is wrong in the lv_port project, so I tried to load this project first to the internal (128kB) flash and test it.

I have commented out as much as possible and only added a LED blink function.

Unfortunately I get the following error message when loading.

0693W00000UoPFvQAN.png 

pk84
pk84Author
Associate III
October 20, 2022

Could it be that the sysclock configuration of the STM32H745 is different from that of the H750?

pk84
pk84Author
Associate III
October 20, 2022

ok, I forgot to change to internal flash in the ld-script, because of that I got the Error above.

So the lv_port program looks ok, at least the blink part... but I have no chance to make it work on the external flash - still nothing happens?? But no error.. how can I debug this? Or can somebody port this lv_port H745 to H750 for me?

--- edited by moderation team to ensure adherence to our community guidelines ---

RomainR.
ST Employee
August 21, 2023

Hello @pk84 

I hope my contribution can help you (a bit late)
https://github.com/rreicher/stm32h750bdk_lvgl_nos

BR
Romain

 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.
Explorer
August 5, 2024

Hey @RomainR. 

 

I would be so happy, if you reply to this request of mine.

 

I'm currently working on a project where I'm trying to integrate a board into the SquareLine Studio framework. However, I've run into an issue. I couldn't flash the LVGL demo successfully, even though I followed all the instructions you provided in this repo https://github.com/rreicher/stm32h750bdk_lvgl_nos

After flashing, the only thing I see is a blank screen, and I'm not receiving any error messages during the flashing or debugging process. Could you please help me troubleshoot this? Is there anything else I might need to consider or additional steps I should take?

Thank you so much for your assistance!

Best regards,
Amaad

RomainR.
ST Employee
August 6, 2024

Hi @Amaad 

I don't use or support SquareLine Studio.
The project I shared is designed for the STM32H750B-DK board.
A bootloader is programmed in internal Flash and the graphical application is stored and executed in the dual QSPI.
For this you have a specific linker configuration, and when programming, an external flash loader for the QSPI flash is necessary.
What hardware are you using?
Can you debug your code?

Best regards,

Romain,

 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.