Skip to content

STM32 NUCLEO-H745ZI-Q Wake-On-LAN demo

License

Notifications You must be signed in to change notification settings

elmot/h7-wake-on-lan

Repository files navigation

CLion example project for STM32H745 MCU and NUCLEO-H745ZI-Q board

Example project for STM32H745 Nucleo-144 board. Only CM7 is actually used.

This example is specially made for multi-core MCUs, like some of STM32H7xx chips

Single-core STM32 MCUs are supported out-of-the-box

Tools required

Steps to make a similar project

  1. Install and configure all the required tools. See CLion Quick start guide
  2. Start STM32CubeMX and make a new project.
    • Note I. On the Project Manager tab, Toolchain/IDE field must be set to STM32CubeIDE
    • Note II. Do not use space, international, or special characters for project name or path
  3. Generate the project code. STM32CubeMX will create a project folder with two separate subprojects
  4. Download and put CMakeLists.txt for this gist to the projects root
  5. Now check all the TODO comments in the CMakeLists.txt file and put actual values instead. TODO tool window
  6. Open the root project in CLion.
  7. Your CMake project will be parsed. If there are errors, correct them and select Tools -> CMake -> Reset Cache and Reload Prpject from the main menu. Repeat until everything is fixed and the CMakeLists is successfully parsed.
  8. Create Run Configurations for both core binaries - CM4 and CM7.
    1. Select create new Embedded GDB Server run configuration.
    2. Select Target and Executablefor correaponding core.
    3. Set tcp::<port number> to 'target remote' args field. The port number may be virtually any in range 1024..65535 but it must nt clash with the conterpart project port number. Use the same number below
    4. Locate ST-LINK_gdbserver executable and select for as GDB server The executable resides in the in STM32CubeIDE installation folder, plugins/com.st.stm32cube.ide.mcu.externaltools.stlink-gdb-server.????/tools/bin/ subfolder. Actual name varies from version to version, and exact name can't be provided
    5. Locate STM32_Programmer_CLI executable similar way, but the folder expected to be plugins/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.???/tools/bin/ then add path to the folder as a -cp key value to GDB Server args field
    6. Add -t -d -p <port number> -m <core num> keys to GDB Server args field.
      • The <core num> parameter is 0 for Cortex-M7 or 3 for Cortex-M4 kernels. Other MCU models may support other numbers.
      • Final arguments form is -cp <STM32_Programmer_CLI bin folder path> -t -d -p <port number> -m <core num>
  9. Try to build both executables. If something goes wrong, fix your CMakeLists.txt and sources.
  10. Click Debug for both executables. The firmware for both kernels should be flashed and started.
  11. Enjoy your newly-created project.

Ethernet support(lwip)

Follow the guide with respect that we're working with CLion

Notes: