Dear NuttX Community,
I am pleased to submit the full Board Support Package (BSP) for the
N32H762IIL7 (ARM Cortex-M7 @ 600MHz) from Nations Technologies. This
is a from-scratch port based solely on the manufacturer's reference
manual, with no proprietary SDK code.
The series also includes documentation, checkpatch fixes, and a small
convenience tool to generate CMake presets for VS Code's CMake Tools
extension.
Summary of the patch series
---------------------------
[PATCH 01/11] 2f74095b90 : Add N32H7 chip and n32h762iil7 board
skeleton (Kconfig, chip.h, irq.h,
memorymap, initial drivers)
[PATCH 02/11] de39b210e8 : Add capture, flash, USBHS (developing)
(n32_capture, n32_flash, USBHS dev/host)
[PATCH 03/11] 23a695eec8 : USBHS device mode porting completed,
host mode in progress
[PATCH 04/11] 9d675076c5 : USBHS host, CORDIC, CoreMark completed;
SDMMC development started
[PATCH 05/11] 98d7392ec3 : SDMMC in progress (driver refinements)
[PATCH 06/11] c4b493bf36 : SDMMC completed with ADMA2 support;
sdbench verified (1.3 MB/s WR, 4.7 MB/s RD)
[PATCH 07/11] 17b9602735 : Add ostest log to board documentation
[PATCH 08/11] c529a837a1 : Fix checkpatch errors across the port
[PATCH 09/11] 32f1afe890 : Fix Makefile build system, add board and
chip documentation
[PATCH 10/11] 494cc01925 : Add CMakePresets auto-generation script
and CMakeLists.txt integration
[PATCH 11/11] 0ed560a636 : Fix remaining errors
Four merge commits (003c610331, 46d0df0129, 70cc7cfc7d, f122931d08)
are not part of the series.
Hardware and benchmark summary
------------------------------
SoC : Nations Technologies N32H762IIL7
Core : ARM Cortex-M7 (Armv7E-M) r2p2 @ 600 MHz
SRAM : 1.5 MB (ITCM/DTCM/AXI SRAM configurable)
Flash : 2 MB SIP Flash (xSPI1)
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.
Benchmark highlights (600 MHz):
CoreMark : 2358.861456 (3.93 CoreMark/MHz)
MTD Flash : Write 1689.77 KiB/s, Read 22755.56 KiB/s (PASS)
SDMMC (4K blk) : Write 1423.2 KB/s, Read 4728.1 KB/s
ostest : All tests PASSED
ramspeed : memcpy/memset validated
pi_css5 : 32768 digits in 0.72 s on FATFS
The full terminal log (boot, ostest, CoreMark, mtd, sdbench, ramspeed,
osperf, pi_css5) is available in the board documentation.
Documentation
-------------
Added under Documentation/platforms/arm/n32h7/:
- index.rst (chip family and peripheral support)
- boards/n32h762iil7/index.rst (board features, pin mapping,
building, flashing, configurations)
The documents follow Documentation/contributing/doc_templates.
checkpatch
----------
All files in arch/arm/src/n32h7/ and boards/arm/n32h7/ have been
checked with ./tools/checkpatch.sh. The remaining errors were fixed
in commits c529a837a1 and 0ed560a636. No errors are reported now.
CMake preset helper
-------------------
Commit 494cc01925 adds tools/generate_cmake_presets.py, a small script
that enumerates every supported board configuration and writes a
generated_board_presets.json for VS Code's CMake Tools extension.
The root CMakeLists.txt checks whether generated_board_presets.json
exists. If not, it runs the script during the first configuration and
asks the user to reload CMake. After that, a board can be selected from
the preset dropdown without manually editing CMakePresets.json or
passing -DBOARD_CONFIG=... on the command line.
This is an optional convenience change and does not affect existing
build flows.
Questions for the community
---------------------------
1. Is the 11-commit series acceptable, or would you prefer a different
split?
2. Is the documentation layout (index.rst + board page) correct?
3. Any preference on how to include the full terminal log? It is
currently embedded in the board documentation and also available
in the commit message of 17b9602735.
The code compiles with zero warnings on both GCC (ARM GNU Toolchain
15+) and Clang (ATfE 19+). Full logs are available upon request.
Thank you for your time and guidance. I look forward to your feedback.
Best regards,
Felix LIAO (JingYue LIAO)
Southwest Jiaotong University
GitHub: Felix-LJY