Porting LvGL to STM32F407VET Black


Porting information needed - what functions (in which files) do I need to implement to port LvGL to a new platform? I have the LvGL library downloaded.

What MCU/Processor/Board and compiler are you using?

STM32F407VET6 “Black” board and an ili9341-based 3.2 inch TFT display


I am using the GCC-arm toolchain with Eclipse and the GNU MCU Eclipse 4.7.1 package.

I also have the latest Arduino software and the Adafruit TFT library for the STM32F4 boards that works so I can harvest code from that to help with this effort. I just don’t know what functions I need to implement in LvGL to make it work.

What do you want to achieve?

I want LvGL to work on my device by porting LvGL.

What have you tried so far?

I have working Arduino development environment code for the Adafruit TFT library. My hope is to port it over to straight STM32 development and avoid the Arduino ecosystem if possible, but if I have to use Arduino, so be it. It’s more important that I get this working than in which exact ecosystem the code is being developed.

Code to reproduce

Does not apply

Screenshot and/or video

No screenshots appropriate.

See https://docs.littlevgl.com/en/html/porting/project.html.

I’ve been trying to figure it out based on the documentation, but it’s not clear which functions I need to implement. It’s not quite clear where they are, but I can use grep to find them once I know which functions to implement.

Perhaps the porting templates would be helpful? It’s mainly implementing the drivers and then registering them.

OK. I’ll try implementing those. I’m having strange problems with JoJo’s code - his binary works perfectly, but I can’t get his code to compile.

Do you have a minimal make file that I could use with one of the tutorials? I think that JoJo’s code should work and the problems I’m having are due to mbed-os, so I’d like to try to build something without mbed-os, just on the bare metal like all of my other code which works for me.

I figure if I can get something to compile and run, then I can go from there and adapt.

OK - if you’re not following the other discussion where I’m specifically trying to get JoJo’s code working, I’ve managed to make a very simple mbed-os program (LED blinker) work, so I am beginning to suspect the problem is either something a bit more subtle in my compiler or his code. I’ve asked him to check to see if his code is up to date just in case, but it looks like his code is mostly 20 days old with the main.cpp file being two days old.

I’m going to try to see if I can make his LvGL code compile with another program - one of the tutorials. So far, it has not worked.

I try to read all discussions - I just don’t reply to all of them right away.

No, but you should be able to use whatever build system you already have and just add LittlevGL’s source files to it.

OK. I’m trying to build a minimum example, but even using Johannes’ port of the Adafruit library is causing a runtime error. I’m not giving up yet.