cancel
Showing results for 
Search instead for 
Did you mean: 

Cannot create “Application-only” project for NUCLEO-H7S3L8 in STM32CubeIDE

isso
Associate II

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. 

isso_0-1754794921439.png

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?

 

7 REPLIES 7
Imen.D
ST Employee

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.

When your question is answered, please close this topic by clicking "Accept as Solution".
Thanks
Imen

 

 

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.

isso_1-1755026688863.png

 



TDK
Super User

Please include the IOC that generates code with the problematic behavior.

If you feel a post has answered your question, please click "Accept as Solution".
isso
Associate II

@TDK 
Here it is

TDK
Super User

The code generates fine for me and the project compiles.

TDK_0-1755050389095.png

 

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.

TDK_1-1755050486615.png

 

So remaining complaint about SystemClock_Config. Yeah, seems like that's a bug.

If you feel a post has answered your question, please click "Accept as Solution".
isso
Associate II

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.

isso_0-1755064606133.png

 


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() ?

TDK
Super User

Do a file search (Search -> File...) in your project for HAL_UART_MspInit and you'll see where it's called.

If you feel a post has answered your question, please click "Accept as Solution".