ewp.py converts as best it can IAR project files into GNU Makefiles.
hg clone https://hg.kewl.org/pub/ewp.py cd ewp.py sudo make install
git clone --recursive https://github.com/STMicroelectronics/STM32CubeH7
cd STM32CubeH7/Projects/STM32H745I-DISCO/Applications/FreeRTOS/FreeRTOS_AMP_RTOS_BareMetal/
ewp.py . EWARM/Project.ewp STM32H745I_Discovery_CM4 STM32H745I_Discovery_CM7
ewp.py -p1 . EWARM/Project.ewp STM32H745I_Discovery_CM4 > Makefile.cm4 ewp.py -p1 . EWARM/Project.ewp STM32H745I_Discovery_CM7 > Makefile.cm7
For each Makefile alter FIXME_CPU and FIXME_ABI for the CPU platform.
In these cases it is cortex-m4, cortex-m7 and hard.
Locate FIXME_LDS and ensure the correct linker script is selected and then remove the FIXME_LDS text.
Change paths to GCC from IAR in the FreeRTOS source and includes entries.
Apply this patch if you want the backlight to be disabled when running the demo.
--- CM4/Src/main.c.orig 2024-10-07 13:22:39.704687900 +0100 +++ CM4/Src/main.c 2024-10-07 13:24:31.570592100 +0100 @@ -74,6 +74,15 @@ */ HAL_Init(); + __HAL_RCC_GPIOK_CLK_ENABLE(); + GPIO_InitTypeDef GPIO_InitStruct = {0}; + GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_MEDIUM; + GPIO_InitStruct.Pin = GPIO_PIN_0; + HAL_GPIO_Init(GPIOK, &GPIO_InitStruct); + HAL_GPIO_WritePin(GPIOK, GPIO_PIN_0, GPIO_PIN_RESET); + BSP_LED_Init(LED1); BSP_LED_Init(LED2);
make -f Makefile.cm4 make -f Makefile.cm7
srec_cat build/STM32H745I_Discovery_CM7/STM32H745I_Discovery_CM7.hex -Intel build/STM32H745I_Discovery_CM4/STM32H745I_Discovery_CM4.hex -Intel -out Project.hex -Intel
Program `Project.hex' with STM32CubeProgrammer (attempt using OpenOCD failed and needs investigation).
The demo FreeRTOS_AMP_Dual_RTOS initially runs ok and then stalls. This is due to newlib memcpy causing an MPU unaligned memory hard fault.
The FreeRTOS_AMP_RTOS_BareMetal demo works fine.