Skip to content

arch/arm/stm32h5: organize peripheral Kconfig selection #16220

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

Merged
merged 1 commit into from
Apr 16, 2025

Conversation

stbenn
Copy link
Contributor

@stbenn stbenn commented Apr 15, 2025

Added menus for usart, I2C, and SPI selection to make the peripheral selection submenu easier to navigate.

Added DMA1 and DMA2 selection options.

Summary

This improves usability by grouping peripherals with many instances into their own menus. Just like the timer selection was already implemented.

Old Peripheral Selection:
image

New Menus:
image

Impact

This change modifies the user interaction with peripheral configuration through make menuconfig.

It does not remove any functionality, but adds DMA menu options.

Testing

OS: Ubuntu 24.04 container
Host OS: Ubuntu 24.04 on WSL2
Compiler: arm-none-eabi-gcc 13
Arch: STM32H5
Chip: STM32H563ZIT6
Board: Nucleo-H563ZI
Config: nucleo-h563zi:nsh

Added menus for usart, I2C, and SPI selection to make the peripheral selection submenu easier to navigate.

Added DMA1 and DMA2 selection options.

Signed-off-by: Tyler Bennett <[email protected]>
@github-actions github-actions bot added Arch: arm Issues related to ARM (32-bit) architecture Size: M The size of the change in this PR is medium labels Apr 15, 2025
@nuttxpr
Copy link

nuttxpr commented Apr 15, 2025

[Experimental Bot, please feedback here]

Yes, this PR appears to meet the NuttX requirements, although some sections could be more thoroughly filled out.

Strengths:

  • Clear Summary: The summary explains the "why" (usability), "what" (menu changes for USART, I2C, SPI, and DMA), and "how" (grouping into submenus). The screenshots are very helpful.
  • Impact Section Addressed: The impact on the user (menuconfig changes) and build process (presumably Kconfig changes) are acknowledged.
  • Testing Information Provided: Key details about the testing environment are present.

Areas for Improvement:

  • Missing Issue References: If this relates to any existing NuttX issues, those should be linked.
  • Impact Section Could Be More Complete: Several "Impact" fields are left blank. While some may genuinely be "NO," it's best to explicitly state that for clarity. Consider:
    • Impact on hardware: Does this affect any specific architectures, boards, or drivers? Even if the answer is no, state it explicitly.
    • Impact on documentation: If the menuconfig changes, the documentation might need updates. Even if not strictly required, consider mentioning it.
    • Impact on security, compatibility: State "NO" explicitly if there's no impact.
  • Testing Logs Missing: The "Testing logs before change" and "Testing logs after change" sections are empty. While screenshots show the menu changes, consider adding logs demonstrating the functionality of the selected peripherals before and after the change to prove they still work correctly. Even a simple "hello world" through USART would be beneficial. If the changes are purely cosmetic to the menuconfig, state that explicitly.

Example of Improved Testing Section:

Testing

I confirm that changes are verified on local setup and works as intended:
* Build Host(s): OS (Ubuntu 24.04 container within Ubuntu 24.04 on WSL2), CPU (x86_64 - information from WSL2 host), compiler(arm-none-eabi-gcc 13)
* Target(s): arch(ARM - STM32H5), board:config (Nucleo-H563ZI:nsh)

Testing logs before change:
*(If no functional changes, explain why logs are not applicable. Example below)*

The changes in this PR are solely to the menuconfig structure. The functionality of the peripherals remains unchanged. Therefore, pre-change logs would show identical peripheral operation as the post-change logs. Screenshots of the menuconfig structure are provided in the Summary section.


Testing logs after change:
*(If no functional changes, you could add a brief confirmation)*

Successfully built and configured NuttX with the new menu structure. Verified USART1, I2C1, and SPI1 functionality through a simple 'hello world' application (logs omitted for brevity). DMA configuration options are now present in the menu.




By addressing these minor points, the PR will be even stronger and easier for reviewers to assess.

@xiaoxiang781216 xiaoxiang781216 merged commit 1b08c1d into apache:master Apr 16, 2025
25 checks passed
@stbenn stbenn deleted the h5-peripheral-kconfig branch April 16, 2025 11:38
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 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.

4 participants