Porting on stm32f429zi-nucleo

Hello guys,
i’m new to rtems and trying to port it on an stm32f429zi-nucleo board.

I duplicated stm32f4 bsp and retrieved stm datasheet and reference manual.
I consequently edited memory regions on linkcmds file, and was looking to fix clocktree, systick, uart etc.
Did someone deal with any similar porting before? Because i don’t seem to find any infos online about the task. Does anyone have any info on how to proceed? And the things to edit to get the porting done.

Thank you in advance!

Hey shakkd,
In general, you want to start with the simplest things first and work your way up. The first important bit will be getting the hello world sample test to run. The STM32* BSPs are generally setup such that you can just alter the configuration via config.ini, so that’s the best place to start. It looks like for this BSP you can provide your own linkcmds and then configure STM32F4_LINKCMDS.

Have you figured out which pins the debug UART is on? You’ll want to figure out the required pin configuration. It looks like STM32F4 isn’t nearly as parameterized as STM32H7, unfortunately.

1 Like

Firstly thank you for your response.
I read from sheets that the board utilizes USART3 as standard console port (on pins PD8 and PD9). These pins are hardwired and exposed as virtual port over the mini-usb, so i should be able to read from it.
What else should i be setting in order to try and execute the hello world program?

Many thanks!

The default UART configuration for STM32F4 chips is USART3 by default, so that shouldn’t require additional configuration. Beyond that, possibly just the linker script tweaks?

The STM32F4 BSP was based on the Discovery board for the '407 processor. This board had no UART connection between the '407 and the debugger portion.
The STM32F429 Nucleo board has a UART connection to the debugger, so the UART will show up as a USB virtual comm port.
The important bits are, the baud rate of the '429 must match what the debugger is expecting, 115,200 baud.
The debugger is wired to certain UART pins on the '429, these are PD8 - TX and PD9 - RX. These pins cannot be mapped to any other UART other than UART3, that’s just how ST laid out the processor.
So, UART3, 115,200 baud, 8 bits, no parity, 1 stop bit.

The Nucleo boards don’t provide a discrete crystal for the processor, they get an 8MHz clock from the debugger module. Of course, the UART true baud rate is determined by this clock and the divisors that are specified in the BSP.

What else? The Nucleo board has an ethernet port with all of the appropriate gubbins built on, so those pins are not safe to use for anything but ethernet, whereas these pins are not used on the '407 Discovery board, but I don’t think they got used for anything in the STM32F4 BSP, so they shouldn’t cause grief.

I think that’s about it.