2023-12-12 6:03 AM
Will this peripheral ever be documented in detail? i.e. registers, interrupts, etc.
Or even a lightweight/low level library would be acceptable.
We may choose STM32U5 for a product but not if we are forced to use TouchGFX for good performance.
Solved! Go to Solution.
2024-12-06 2:58 AM
Did anyone requested the NeoChromeSDK and got it? It was promised that this will be shared via st.com, but in the meantime as a temporary solution this can be requested via mail ( @JMYGI)
I'm still waiting for it, i'm not sure what will it contain. How 'big' you have to be, to actually get it?
I understand that this is 3rd party ip and there are issues what can be shared, but how can developers use it, if there is no documentation on it.
Something like this it would be nice: this is think silicon nema pico xl gpu, it is configured in the following way, give some performance metrics, API, examples, documentation and so on.
What would be even nicer is source code for the library, more description of the HW, shader core architecture and its ISA, so developers can write their own shaders (limited as it is, it is still programable and would be useful)
What is there to gain to keep all this secret? It is no advantage that we have all these nice features, but no possibility to use it. Developers will just use a different MCU. ST MCUs don't exist in a void, there are alternatives, competitors.
2024-12-06 3:51 AM - edited 2024-12-06 5:55 AM
@yakabmarci The best resource I know is LVGL which since 3 weeks ago, thanks to dedicated effort of Liam Howatt, has supposedly working code supporting GPU2D. I am just trying to make it work, it is dev code on master branch, no release yet. This is the only reason why I still did not abandon all the hope.
See: lvgl/src/draw/nema_gfx at master · lvgl/lvgl
But I agree, ST's approach to this matter and engineer support in general is simply very upsetting.
@JMYGI may not be with the company anymore. It almost seems like they try to drastically reduce staff costs before some merger.
2024-12-06 4:03 AM
i have the STM32H7S78-DK on order, should arrive next week, once i have it i plan to make a bunch of examples, just nemagfx stuff, no touchgfx or lvgl or anyhting else. (with or without ST's help :) ) I already had a look at lvgl, it is a good starting point. The purpose is to evaluate nemagfx performance and usability, suitability for a particular project
2025-03-08 11:08 AM - edited 2025-04-09 12:58 AM
Joining NeoChromSDK works now.
2025-03-10 2:13 AM
@Jack3 Note that although STM32U5A5ZJ has GPU2D, this gpu does not support vector graphics unlike the version found in STM32U5G9.
2025-03-10 12:14 PM
@TDJ, thank you very much! A bit confusing, because STM32CubeMX didn't show any GPU2D for that one.
STM32U5A5:
STM32U5G9:
And does the STM32U5G7 support vector graphics?
https://www.st.com/en/microcontrollers-microprocessors/stm32u5f7-5g7.html
2025-03-10 12:27 PM - edited 2025-04-09 1:00 AM
I tried a downloaded 'Middlewares\Third_Party\NemaGFX'
It has a libnemagfx.a in the lib directory.
I attached the NemaGFX directory in a zip file.
Adding include path:
Adding it in library paths:
Adding library:
Step by step.
Trying:
nema_sys_init();
nema_cmdlist_t cl = nema_cl_create(); // Create a new CL
nema_cl_bind_cmdlist(&cl); // Bind it
The first two lines compile well.
The next line calling 'nema_cl_bind_cmdlist(&cl);'
I get
'implicit declaration of function 'nema_cl_bind_cmdlist'; did you mean 'nema_cl_add_cmd'? [-Wimplicit-function-declaration]'
So we are not yet there.
I guess, I need more information to use it properly.
Once I get things working, I'd like to put up examples.
Update: Going with NeoChromSDK is the right way, of course.
2025-03-10 2:27 PM - edited 2025-03-11 2:16 AM
@Jack3 Although I cannot debug your code, I can reassure you that LVGL 9.3 (pre-release, dev branch) after very recent fixes compiles and works well using GPU2D with STM32U5G9. STM32U5A9 should work too but no vector graphics.
You may be missing
-L{your_dir_with_nemagfx lib}/gcc -l:libnemagfx-float-abi-hard.a
directive but it is a long shot.
NEMA driver impl. details can be found here:
lvgl/src/draw/nema_gfx at master · lvgl/lvgl
I have done performance comparisons against previous major version 8.3 which show that e.g. image rotation in LVGL 9.3 is way faster than it used to be. See:
NEMA GFX 9.3 initial performance vs DMA2D 8.3 · Issue #7423 · lvgl/lvgl
2025-03-11 12:24 AM - edited 2025-03-11 2:16 AM
@Jack3 To clarify and correct myself: STM32U5A5 does NOT have GPU2D, but STM32U5A9 does - although without vector graphics. GPU2D with vector graphics is found on STM32U5G9.
2025-03-21 2:17 PM
nema_cl_bind_cmdlist(&cl); i think the right function is just nema_cl_bind
so while waiting for the promised documentation which i never got (did anyone get it), i had a closer look in the library. i think i know why the reluctance to share anything, the whole thing is a mess, it is very fiddly, it has many unexpected limitations, you try to do things a little bit differently and it doesn't work anymore, good luck finding out why. i managed to get a rough overview about the register map and shader vliw structure, it is very, very limited and messy, it would be nice if more details could be shared, i get it that it is a 3rd party IP, but it is pretty basic, all same class gpus work pretty much the same way, what is there to protect? aren't there some open source embedded gpus out there? i would prefer openness even if less performant