stm32lib: ST not adding new parts.
Description
It appears ST are no longer adding new MCU drivers to stm32lib. For the H5 series stm32lib only supports H503, H562, H563 and H573. It does not support H523, H533, H5E or H5F.
New parts like the H523 are only supported in stand-alone repositories cmsis-device-h5 and stm32h5xx-hal-driver. The C0 series are also only supported in stand-alone drivers. The C5 has no support yet, but I expect it to be stand-alone. ST are also imminently releasing HAL2, see: https://github.com/STMicroelectronics/STM32CubeU5-V2-Preview
I have diffed the stm32lib H5 drivers with the stand-alone versions and there are quite a few difference. NUCLEO_H563ZI produces many errors when built with the stand-alone drivers.
I want to use the H523, but I don't know how to proceed or how the developers would want to incorporate new ST drivers - either add stand-alone submodules or wait for HAL2. I don't think my git and C skills are up to the task.
I think the H5, C5 and C0 families will be very important. ST is putting a lot of effort into M33 parts and they are significantly cheaper than the older M4 parts. H5 and C5 are pin compatible high performance / low cost families and C0 is pin compatible low cost alternative to G0.
https://github.com/STMicroelectronics/cmsis-device-h5
https://github.com/STMicroelectronics/stm32h5xx-hal-driver
https://github.com/STMicroelectronics/cmsis-device-c0
https://github.com/STMicroelectronics/stm32c0xx-hal-driver
Code Size
It is reported the HAL2 drivers will be more compact.
Implementation
I hope the MicroPython maintainers or community will implement this feature
Code of Conduct
Yes, I agree
stm32: Add support for STM32N6xx MCUs and two N6 boards
Summary
This PR adds preliminary support for ST's new STM32N6xx MCUs.
Supported features of this MCU so far are:
- basic clock tree initialisation, running at 800MHz
- fully working USB
- mboot support (required, because there's no internal flash)
- XSPI in memory-mapped mode
machine.Pinmachine.UART- SD card
- filesystem
- ROMFS
- WiFi and BLE via cyw43-driver (SDIO and UART backend)
Supported boards:
- NUCLEO_N657X0
STM32N6570_DKEdit: this board is no longer supported, can be added later if needed- OPENMV_N6
Note that the N6 does not have internal flash, and has some tricky boot sequence, so using a custom bootloader (mboot) is almost a necessity.
The ST CMSIS and HAL files are added verbatim here, but will eventually be moved into Edit: N6 CMSIS and HAL files are now in stm32lib.stm32lib.
OpenMV have generously sponsored the development of this port.
Testing
This PR has been tested on the two N6 boards that are added here.