2.8. When selecting microcontrollers in the STM32N6 series

For STM32N6 projects using the VENC feature, video can be compressed before sending it over UVC either by using the “VENC (Video Encoder)” option or the “standalone JPEG peripheral” option. Since the VENC middleware stack is not supported by STM32CubeMX and therefore not generated, customers who want to use VENC (H264/JPEG) must manually copy this middleware from the firmware to their projects.

When creating a new STM32N6 project, enabling the JPEG peripheral and generating the code, the Utilities/JPEG folder containing the JPEG source files is not generated. To avoid this issue the user should add the missing folder manually, copying it from this path:

Users\<User_name>\STM32Cube\Repository\STM32Cube_FW_N6_V1.3.0\Utilities

During migration from an older STM32N6 project to STM32CubeMX V6.16.0, the system_stm32n6xx_fsbl.c file will not update automatically. To update it, the user needs to replace the file in the project with the latest version found in the STM32CubeN6 firmware package under:

\Drivers\CMSIS\Device\ST\STM32N6xx\Source\Templates

An issue may occur when building an STM32N6 project in STM32CubeIDE where the AppS context is added incrementally. Specifically, if the project is initially created with components enabled only in the EXTMEM and FSBL contexts, and later these components are activated in the AppS context by modifying the *.ioc file and regenerating the code, the AppS project fails to build due to missing files in the STM32CubeIDE\Appli\Application\User\Core directory.

When using USBPD with STM32N6 projects and generating code with the MDK-ARM toolchain, a compilation error may occur due to inconsistent compiler flags. To fix this error, the compiler option Short enums/wchar in the MDK-ARM project under Options for Target -> C/C++ (AC6) should be unchecked.

For the full configuration of the FMC feature with STM32N6xx products, the stm32n6xx_ll_fmc.c file is not automatically included in the project. Manual inclusion is required to avoid compilation errors.

Warning messages appear after building a project that configures ThreadX with the “Low Power Support” mode, regardless of the toolchain.

In full LL mode, the function LL_PWR_EnableVddIOx() is missing from STM32CubeMX generated code. To fix the issue, the user should add it manually in main() after calling SystemClock_Config().

When generating a project with EXTMEM_MANAGER middleware enabled and two memories configured, and EXTMEM_LOADER middleware enabled with Memory 2 selected, the generated code incorrectly targets only the first memory instance. As a result, external memory data cannot be read correctly for Memory 2 configurations.

Workaround: If possible use Memory 1 as selected memory in EXTMEM_LOADER. Or Manually update the generated ExtMemLoader files so that the configuration array size in stm32_extmem_config.h is driven by EXTMEMORY_NUMBER or the equivalent generated count, and the memory configuration assignment in extmem_manager.c uses the proper symbolic memory index, which is EXTMEMORY_2 by replacing extmem_list_config[0] with extmem_list_config[EXTMEMORY_2].