-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[RC] LVGL 9.2.1 on NuttX 12.7.0(-RC) workbench. #13825
Comments
probably related issue: #13839 |
Could you add a photo of the broken screen? It could help a lot to identify the root of the issue. |
Thanks @kisvegabor ! As reported by @raiden00pl : #13839. Problems reported previously by @TimJTi seems to be already fixed and merged to LVGL upstream :-) |
Update: This may not be the LVGL issue as reported here: #13839 (comment) :-) If there is 9.2.1-RC0 then we may test all changes and fixes on a real hardware :-) |
Thank you! I can't see how LVGL could render this kind of pattern due to a misconfiguration on our end, so probably it's really a board issue. |
lvgl/lvgl#6981 is merged |
apache/nuttx-apps#2592 please test |
apache/nuttx-apps#2670 backport |
Awesome all issues seems fixed on NuttX side! BIG THANK YOU!! :-) |
@cederom apache/nuttx-apps#2592 is not merged |
LVGL 9.2.1 will be relased on 2024-10-14 then we can make final tests / tuning and merge.. thank you for the patience @jerpelea :-) |
@cederom updates? |
Thanks @jerpelea :-)
|
|
Is it feasible/possible to allow a choice of LVGL version via Kconfig? I know there is a copy/paste of the LVGL Kconfig content to the NuttX one which is a fudge, but I am not experienced enough with Kconfig syntax to know if the archive file path can be constructed from the user choice so the correct file will be downloaded? I've seen an argument here that we don't want to have to have a 2 stage process (select LVGL, then execute a make to get the archive loaded and only then are the correct Kconfig settings available) but surely there's a way around this? I'm not working today but I will try and research this as a possibility over the weekend. |
Okay, so the LVGL https://github.com/lvgl/lvgl/tree/release/v9.2 As LVGL tag v9.2.1 is not here yet we may use branch v9.2 code for testing its 99% 9.2.1 :-) https://github.com/lvgl/lvgl/archive/refs/heads/release/v9.2.zip |
I tracked down the original discussion thread from the mail archive here and had a look around for clever "tricks". Sadly I have to conclude that we have little choice but to do the copy/paste of LVGL's Kconfig contents when there's an LVGL upgrade:
Guess we will stick withe what we've got - but I will do a small documentation PR to add a "how to" to explain how to use a different LVGL version by cloning the LVGL repo directly into your own nuttx-apps space and copy/pasting the LVCGL Kconfig to NuttX's local copy. |
TLDR: Its a nice idea to support several LVGL versions in NuttX, but its out of scope of this PR where we want to have specifically 9.2.1 in 12.7.0, we should talk about that in a separate Issue not to mix too many things in one place?
Thanks @TimJTi :-) Another approach would be to keep different LVGL releases in separate directories and reference them with a different configurations? Then process them with Make/CMake just as we do with external packages that are then patched before use in NuttX?
This may be a good design goal. This tool is only for configuration. Make/CMake is for processing the configuration.
By assigning a configuration string variable as URL or directory location holding specific LVGL version?
Again its not Kconfig task to perform operations, its only for configuration :-)
This may be treated as "just onother different configuration"?
I think it does, look:
We should stick to releases in the first place. Now its a "special" situation where we want to test stuff right before a release so we use release branch package, but we will switch this variable to a release package again as soon as it shows up. But having a dedicated lvgl git master port may be good for testing, it should be possible to use lvgl master too, and you may call this port "lvgl-devel" to align with other OS nomenclature :-)
Some better process is required here. You may take a look at FreeBSD ports how things are done [1] as an example the process is similar in NuttX. There are various "ports" where the same program/library may exist in different versions (mutually exclusive, i.e. mysql, python, qt, etc). We may have different LVGL applications / system libraries here too for different LVGL versions. Also note the standard steps like "fetch" as the first step where connections are possible, then "extract", "patch", "configure", "build", "stage" (move binaries from src package to dedicated OS layout compliant prefix), "package" (create system package out of stage location), "install" - all this makes process clean and repeatable for all ports. [1] https://docs.freebsd.org/en/books/porters-handbook/slow-porting |
Sounds like a good plan |
Looks like we are set on our side, all tested, waiting for LVGL 9.2.1 release to update the release URL, it should show up in days :-) nop nop nop :-) |
LVGL 9.2.1 release is planned for tomorrow :-) |
As promissed LVGL 9.2.1 is out! :-) |
Sorry guys, please take a look at this comment. |
Thanks @kisvegabor :-) I think we use our own configuration mechanism that is not affected, did reply in lvgl/lvgl#7098 and waiting for @XuNeo confirmation, but I think all if fine on our side :-) |
Huh, great! I hope @XuNeo will confirm that it's okay. |
The Kconfig file content is copied out to nuttx-apps. diff --git a/graphics/lvgl/Kconfig b/graphics/lvgl/Kconfig
index 4daf467f3..620b3f41c 100644
--- a/graphics/lvgl/Kconfig
+++ b/graphics/lvgl/Kconfig
@@ -385,8 +385,18 @@ menu "LVGL configuration"
depends on LV_USE_DRAW_VGLITE
default n
+ config LV_USE_PXP
+ bool "Use NXP's PXP on iMX RTxxx platforms"
+ default n
+
config LV_USE_DRAW_PXP
- bool "Use NXP's PXP on iMX RTxxx platforms"
+ bool "Use PXP for drawing"
+ depends on LV_USE_PXP
+ default y
+
+ config LV_USE_ROTATE_PXP
+ bool "Use PXP to rotate display"
+ depends on LV_USE_PXP
default n
config LV_USE_PXP_DRAW_THREAD
@@ -730,6 +740,18 @@ menu "LVGL configuration"
int "Required alignment size for buffers"
default 1
+ config LV_ATTRIBUTE_MEM_ALIGN
+ string "Will be added where memories needs to be aligned (with -Os data might not be aligned to boundary by default)."
+ default ""
+ help
+ E.g. __attribute__((aligned(LV_ATTRIBUTE_MEM_ALIGN_SIZE)))
+
+ config LV_ATTRIBUTE_LARGE_CONST
+ string "Attribute to mark large constant arrays for example font's bitmaps"
+ default ""
+ help
+ E.g. __attribute__((section("DataQuickAccess")))
+
config LV_ATTRIBUTE_FAST_MEM_USE_IRAM
bool "Set IRAM as LV_ATTRIBUTE_FAST_MEM"
help
@@ -1349,6 +1371,13 @@ menu "LVGL configuration"
bool "Enable system monitor component"
default n
+ config LV_SYSMON_GET_IDLE
+ string "Get the idle percentage."
+ depends on LV_USE_SYSMON
+ default "lv_timer_get_idle"
+ help
+ E.g. uint32_t my_get_idle(void);
+
config LV_USE_PERF_MONITOR
bool "Show CPU usage and FPS count"
depends on LV_USE_SYSMON
The newly added config option should be used similar to LV_PROFILER_BEGIN macro. |
Description / Steps to reproduce the issue
As reported during 12.7.0-RC0 testing:
@fjpanag:
@TimJTi:
On which OS does this issue occur?
[OS: BSD], [OS: Linux], [OS: Mac]
What is the version of your OS?
unknown
NuttX Version
12.7.0-RC0
Issue Architecture
[Arch: all]
Issue Area
[Area: Applications], [Area: Drivers]
Verification
The text was updated successfully, but these errors were encountered: