Skip to content

arch/arm/n32h7: Add N32H762IIL7 BSP with USBHS, SDMMC, CORDIC and CMake preset helper - #20102

Open
Felix-LJY wants to merge 1 commit into
apache:masterfrom
Felix-LJY:master
Open

arch/arm/n32h7: Add N32H762IIL7 BSP with USBHS, SDMMC, CORDIC and CMake preset helper#20102
Felix-LJY wants to merge 1 commit into
apache:masterfrom
Felix-LJY:master

Conversation

@Felix-LJY

Copy link
Copy Markdown

Summary

This PR adds a complete Board Support Package (BSP) for the
N32H762IIL7 (ARM Cortex-M7 @ 600MHz) from Nations Technologies,
including chip-level and board-level support, peripheral drivers,
documentation, and a CMake preset helper for VS Code users.

The port is a from-scratch implementation based solely on the
manufacturer's reference manual (TRM). No proprietary SDK code is
used.

Functional areas affected:
arch/arm/src/n32h7/ (new chip support)
arch/arm/include/n32h7/ (new header files)
boards/arm/n32h7/n32h762iil7/ (new board support)
Documentation/platforms/arm/n32h7/ (new documentation)
tools/generate_cmake_presets.py (new helper script)
CMakeLists.txt (small integration)

Completed drivers:
GPIO, EXTI, RCC, UART (console), TIM, PWM, ONESHOT, TICKLESS,
DMA, FLASH (MTD), CAPTURE, USBHS (Device and Host), CORDIC,
SDMMC (ADMA2, FATFS verified), UID, WDT, RTC.

Not yet ported:
I2C, SPI, ADC, DAC, CAN/FDCAN, ETH.

References:
Initial mailing list announcement:
https://www.mail-archive.com/dev@nuttx.apache.org/msg14861.html

Follow-up mailing list thread:
https://www.mail-archive.com/dev@nuttx.apache.org/msg15060.html

Impact

Is new feature added? YES - Adds support for a new SoC (N32H7) and
a new board (N32H762IIL7).

Impact on user? NO - Existing boards are unaffected. The new port
is self-contained under arch/arm/src/n32h7/ and boards/arm/n32h7/.

Impact on build? YES (minor) - A new Python script
(tools/generate_cmake_presets.py) and a small integration in the
root CMakeLists.txt are added. The script only runs if
generated_board_presets.json is missing, and it does not affect
existing build flows. Users who prefer to pass -DBOARD_CONFIG=...
manually are unaffected.

Impact on hardware? YES - A new architecture family (N32H7) and a
new board (N32H762IIL7) are added. No existing architecture or
board is modified.

Impact on documentation? YES - New documentation is added under
Documentation/platforms/arm/n32h7/:
- index.rst (chip family and peripheral support)
- boards/n32h762iil7/index.rst (board features, pin mapping,
building, flashing, configurations)

Impact on security? NO - No security-relevant changes.

Impact on compatibility? NO - Existing boards and configurations
are unaffected.

Testing

Build Host(s):

  • OS: Ubuntu Linux
  • CPU: x86_64 (AMD)
  • Compiler: GCC (ARM GNU Toolchain 15+) and Clang (ATfE 19+)

Target(s):

  • Arch: ARM (Cortex-M7)
  • Board: n32h762iil7:nsh

Verification steps:

  1. Configure and build:
    ./tools/configure.sh n32h762iil7:nsh
    make -j$(nproc)
  2. Flash and boot on real hardware (N32H762IIL7 dev board via
    J-Link + Ozone).
  3. Run ostest - all tests PASSED.
  4. Run benchmarks: coremark, mtd, sdbench, ramspeed, osperf,
    pi_css5.
  5. Verify FATFS on SD card and MTD on SIP Flash.

Testing logs after change (summary):

NuttX 13.0.1 98d7392 arm n32h762iil7

CoreMark 1.0 : 2358.861456 (3.93 CoreMark/MHz)
MTD Flash (/dev/mtd0):
Write: 1689.77 KiB/s | Read: 22755.56 KiB/s | Verification: PASSED
SDMMC (sdbench, block size 4096):
Sequential Write: 1423.2 KB/s | Sequential Read: 4728.1 KB/s
ostest: All tests PASSED
ramspeed: memcpy/memset bandwidth validated
pi_css5: 32768 digits of PI in 0.72 seconds (verified on FATFS)

The full terminal log (boot, ostest, CoreMark, mtd, sdbench,
ramspeed, osperf, pi_css5) is available in the board documentation
and in the commit message of 17b9602.

PR verification Self-Check

[x] This PR introduces only one functional change.
[x] I have updated all required description fields above.
[x] My PR adheres to Contributing Guidelines and Documentation.
[ ] My PR is still work in progress (not ready for review).
[x] My PR is ready for review and can be safely merged.

acassis
acassis previously approved these changes Sep 10, 2026
@github-actions github-actions Bot added Area: Build system Arch: arm Issues related to ARM (32-bit) architecture Size: XL The size of the change in this PR is very large. Consider breaking down the PR into smaller pieces. Board: arm labels Sep 10, 2026
@github-actions

github-actions Bot commented Sep 10, 2026

Copy link
Copy Markdown

MemBrowse Memory Report

No memory changes detected for:

@xiaoxiang781216

Copy link
Copy Markdown
Contributor

@Felix-LJY please squash your change into one patch or organize your patch into individual driver and remove the temp change.

@Felix-LJY

Felix-LJY commented Sep 10, 2026

Copy link
Copy Markdown
Author

@Felix-LJY please squash your change into one patch or organize your patch into individual driver and remove the temp change.

@xiaoxiang781216
Thank you for the review!

I have:

  • Fixed all checkpatch errors.
  • Squashed all changes into a single commit.
  • Removed all temporary/debug changes.
  • Verified the build and runtime tests again on hardware.

I would appreciate any further feedback when you have time.

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: Build system Board: arm Size: XL The size of the change in this PR is very large. Consider breaking down the PR into smaller pieces.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants