Skip to content
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

arm/stm32h753bi: Add support to lvgl #15272

Merged
merged 1 commit into from
Dec 22, 2024
Merged

Conversation

JorgeGzm
Copy link
Contributor

Summary

Add support of lvgl to the linum board.

Impact

Use lvgl with the display of 7 inch

Testing

build the lvgl sample

$ ./tools/configure.sh linum-stm32h753bi:lvgl
$ make -j

@github-actions github-actions bot added Area: Documentation Improvements or additions to documentation Arch: arm Issues related to ARM (32-bit) architecture Board: arm Size: M The size of the change in this PR is medium labels Dec 18, 2024
@nuttxpr
Copy link

nuttxpr commented Dec 18, 2024

[Experimental Bot, please feedback here]

No, this PR description does not adequately meet the NuttX requirements. Here's why and how to fix it:

Missing Information in Summary:

  • Why is this change necessary? Is there a user need for LVGL support? Does it replace something else? Is it part of a larger effort?
  • What functional part of the code is being changed? Specifically mention the display driver, graphics subsystem, configuration files, etc. Mentioning "linum board" is too broad.
  • How does the change exactly work? What files were modified? Were new drivers or configurations added? How is LVGL integrated with the existing graphics stack?

Missing Information in Impact:

  • Is new feature added? Yes, explicitly state this.
  • Impact on user: YES. The user now has access to LVGL. Describe how a user would enable and use this feature. Do they need to install anything new? Are there new configuration options?
  • Impact on build: Potentially YES. If new dependencies are added (like LVGL itself), explain how the build system is affected. Does the user need to obtain LVGL separately?
  • Impact on hardware: YES. This specifically impacts the linum-stm32h753bi board and its 7-inch display. Be more specific about the hardware interaction.
  • Impact on documentation: YES. Documentation needs to be added explaining how to use LVGL on the linum board. State that you have added (or will add) this documentation.
  • Impact on security, compatibility, anything else: Address these explicitly, even if the answer is NO.

Missing Information in Testing:

  • Build Host(s): Provide details about your build environment. e.g., "Linux, x86_64, GCC 12.2"
  • Target(s): Be more specific. "sim:linum-stm32h753bi:lvgl" if you tested on a simulator, or "linum-stm32h753bi:lvgl" if on real hardware.
  • Testing logs: "build the lvgl sample" isn't a testing log. Show actual output from the build and, more importantly, show output demonstrating LVGL functionality on the target. Did the LVGL demo run successfully? Include relevant snippets of output. If you encountered any errors or warnings during the build or testing, include those as well.

Example of a Better PR Description:

Summary

This PR adds support for the LVGL graphics library to the linum-stm32h753bi board, enabling the use of LVGL applications on its 7-inch display. This is in response to community requests for a modern, feature-rich graphics library on this platform. The changes involve adding LVGL to the build system, integrating it with the existing STM32H7 display driver, and adding a default LVGL configuration. Related Issue: (If applicable, link to a NuttX or NuttX Apps issue).

Impact

  • Is new feature added? YES. LVGL support is a new feature.
  • Impact on user: YES. Users can now build and run LVGL applications on the linum-stm32h753bi board. They will need to select the lvgl configuration option when configuring the board (e.g., ./tools/configure.sh linum-stm32h753bi:lvgl). A basic LVGL demo application is included. Further documentation is provided in the updated boards/arm/stm32h7/linum-stm32h753bi/README.md file.
  • Impact on build: YES. The build system now includes LVGL as a dependency. LVGL is downloaded and built automatically as part of the NuttX build process.
  • Impact on hardware: YES. This specifically affects the linum-stm32h753bi board and its integrated 7-inch display. The existing framebuffer driver is utilized by LVGL.
  • Impact on documentation: YES. The boards/arm/stm32h7/linum-stm32h753bi/README.md file has been updated with instructions for configuring and using LVGL.
  • Impact on security: NO.
  • Impact on compatibility: NO.
  • Anything else to consider: NO.

Testing

I confirm that changes are verified on local setup and works as intended:

  • Build Host(s): Linux, x86_64, GCC 12.2
  • Target(s): linum-stm32h753bi:lvgl (Tested on real hardware)

Testing logs before change (N/A - Feature did not exist):

Testing logs after change:

$ ./tools/configure.sh linum-stm32h753bi:lvgl
... (Output from configuration) ...
$ make -j
... (Build output.  Include any relevant warnings or errors.) ...
$ #  (Steps to run the LVGL demo application on the target)
... (Output from the LVGL demo application running on the target.  Show that LVGL is functional.) ...

@JorgeGzm JorgeGzm force-pushed the linum_lvgl branch 2 times, most recently from a45c220 to 931f773 Compare December 18, 2024 19:23
@acassis
Copy link
Contributor

acassis commented Dec 20, 2024

@xiaoxiang781216 any idea why this error from stm32f4discovery is happening?

Configuration/Tool: stm32f4discovery/ipv6,CONFIG_ARM_TOOLCHAIN_GNU_EABI
2024-12-18 19:38:02
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
  Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
  Building NuttX...
chip/stm32_gpio.c:44:11: note: '#pragma message: CONFIG_STM32_USE_LEGACY_PINMAP will be deprecated migrate board.h see tools/stm32_pinmap_tool.py'
   44 | #  pragma message "CONFIG_STM32_USE_LEGACY_PINMAP will be deprecated migrate board.h see tools/stm32_pinmap_tool.py"
      |           ^~~~~~~
Error: board/stm32_ethernet.c:84:19: error: 'g_phy_lock' defined but not used [-Werror=unused-variable]
   84 | static spinlock_t g_phy_lock = SP_UNLOCKED;
      |                   ^~~~~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [/github/workspace/sources/nuttx/boards/Board.mk:83: stm32_ethernet.o] Error 1
make[2]: Target 'libboard.a' not remade because of errors.
make[1]: *** [Makefile:184: board/libboard.a] Error 2
make[1]: Target 'nuttx' not remade because of errors.
make: *** [tools/Unix.mk:551: nuttx] Error 2
make: Target 'all' not remade because of errors.

@acassis
Copy link
Contributor

acassis commented Dec 20, 2024

@hujun260 seems like it came from your PR #15250

@acassis
Copy link
Contributor

acassis commented Dec 20, 2024

@hujun260 seems like it come from your PR #15250

g_phy_lock definition should be wrapped by

#ifdef HAVE_NETMONITOR
...
#endif

@hujun260
Copy link
Contributor

@xiaoxiang781216 any idea why this error from stm32f4discovery is happening?

Configuration/Tool: stm32f4discovery/ipv6,CONFIG_ARM_TOOLCHAIN_GNU_EABI
2024-12-18 19:38:02
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Disabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
  Enabling CONFIG_ARM_TOOLCHAIN_GNU_EABI
  Building NuttX...
chip/stm32_gpio.c:44:11: note: '#pragma message: CONFIG_STM32_USE_LEGACY_PINMAP will be deprecated migrate board.h see tools/stm32_pinmap_tool.py'
   44 | #  pragma message "CONFIG_STM32_USE_LEGACY_PINMAP will be deprecated migrate board.h see tools/stm32_pinmap_tool.py"
      |           ^~~~~~~
Error: board/stm32_ethernet.c:84:19: error: 'g_phy_lock' defined but not used [-Werror=unused-variable]
   84 | static spinlock_t g_phy_lock = SP_UNLOCKED;
      |                   ^~~~~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [/github/workspace/sources/nuttx/boards/Board.mk:83: stm32_ethernet.o] Error 1
make[2]: Target 'libboard.a' not remade because of errors.
make[1]: *** [Makefile:184: board/libboard.a] Error 2
make[1]: Target 'nuttx' not remade because of errors.
make: *** [tools/Unix.mk:551: nuttx] Error 2
make: Target 'all' not remade because of errors.

already fixed

@hujun260
Copy link
Contributor

@hujun260 seems like it come from your PR #15250

g_phy_lock definition should be wrapped by

#ifdef HAVE_NETMONITOR ... #endif

spinlock_t g_phy_lock

already fixed!

@acassis acassis merged commit e55966d into apache:master Dec 22, 2024
21 of 26 checks passed
@JorgeGzm JorgeGzm deleted the linum_lvgl branch December 22, 2024 22:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Arch: arm Issues related to ARM (32-bit) architecture Area: Documentation Improvements or additions to documentation Board: arm Size: M The size of the change in this PR is medium
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants