2025-08-09 8:09 PM - edited 2025-08-09 8:10 PM
Hi all,
Whenever I try to create a new project for the NUCLEO-H7S3L8 board with the Project Structure set to Application only, I get the following error.
I’ve already refreshed updates via Help → STM32Cube Updates and confirmed that my firmware repository contains the latest STM32CubeH7RS package.
The project creation works only if I select Boot along with Application in the project structure. A standalone Application configuration always fails.
Has anyone else encountered this? Is there a workaround to create an Application-only project for this board?
2025-08-12 5:43 AM - edited 2025-08-12 2:06 PM
Hello @isso
Which CubeIDE version used?
Try to uninstall then reinstall STM32CubeIDE and use latest release.
Make sure that the project name and directory path do not contain any special characters (such as "&" or "-"). This may prevent the creation of a project folder in a directory path containing these characters.
2025-08-12 12:25 PM - edited 2025-08-12 2:24 PM
Hi @Imen.D,
Environment
STM32CubeIDE 1.19.0 (Build 25607_20250703_0907, UTC)
Windows 11 x86_64, Java: Eclipse Adoptium 21.0.3+9-LTS
Target: NUCLEO-H7S3L8
After a fresh IDE reinstall, I can now create Appli-only projects. But, as before, I still see inconsistent code generation in CubeMX for a minimal setup like:
USART3 on PD8 (TX) / PD9 (RX)
GPIO output on PD10 (LED_GREEN)
Issues
SystemClock_Config() is not generated at all (it's only generated in 'BOOT' project).
PD8/PD9 pins config doesn't appear in main. It appears only in HAL_UART_MspInit() (in stm32h7rsxx_hal_msp.c) and not in MX_GPIO_Init()
Sometimes MX_GPIO_Init() only enables the port clock without configuring the pins.
My understanding is CubeMX should emit complete GPIO init for all configured pins (including for USART3).
Are there specific project settings or steps I might be missing to fix this behavior? Any guidance would be appreciated.
2025-08-12 1:51 PM
Please include the IOC that generates code with the problematic behavior.
2025-08-12 2:10 PM
@TDK
Here it is
2025-08-12 7:05 PM
The code generates fine for me and the project compiles.
HAL_UART_MspInit is the correct place to initialize UART pins, and it does so for PD8/PD9.
PD10 is missing a context, so it is not initialized anywhere. If you want the application to initialize it, set context to application.
So remaining complaint about SystemClock_Config. Yeah, seems like that's a bug.
2025-08-12 10:16 PM - edited 2025-08-12 10:57 PM
Thank you! @TDK
"Pin Reservation" for PD10 got it initialized indeed. I still cannot get the SystemClock_Config init although it seems set in Advanced Settings.
I'm dropping the main() I got just to confirm if the SystemClock_Config is all I miss.
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* Enable the CPU Cache */
/* Enable I-Cache---------------------------------------------------------*/
SCB_EnableICache();
/* Enable D-Cache---------------------------------------------------------*/
SCB_EnableDCache();
/* MCU Configuration--------------------------------------------------------*/
/* Update SystemCoreClock variable according to RCC registers values. */
SystemCoreClockUpdate();
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_USART3_UART_Init();
/* USER CODE BEGIN 2 */
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
HAL_GPIO_TogglePin(GPIOD, GPIO_PIN_10);
HAL_Delay(100);
/* USER CODE BEGIN 3 */
}
/* USER CODE END 3 */
}
One more please, since HAL_UART_MspInit is the correct place to initialize UART pin, where is it called? in MX_USART3_UART_Init or HAL_Init() ?
2025-08-13 6:20 AM
Do a file search (Search -> File...) in your project for HAL_UART_MspInit and you'll see where it's called.