.. _stm32cube_ide:

STM32CubeIDE
############

STM32CubeIDE_ is an Eclipse-based integrated development environment from STMicroelectronics designed for the STM32 series of MCUs and MPUs.

This guide describes the process of setting up, building, and debugging Zephyr
applications using the IDE.

A project must have already been created with Zephyr and west.

These directions have been validated to work with version 1.16.0 of the IDE
on Linux.

Project Setup
*************

#. Before you start, make sure you have a working Zephyr development environment, as per the
   instructions in the :ref:`getting_started`.

#. Run STM32CubeIDE from your Zephyr environment.  Example:

   .. code-block::

      $ /opt/st/stm32cubeide_1.16.0/stm32cubeide

#. Open your already existing project by going to
   :menuselection:`File --> New --> STM32 CMake Project`:

   .. figure:: img/stm32cube_new_cmake.webp
      :align: center
      :alt: Create new CMake project

#. Select :guilabel:`Project with existing CMake sources`, then click :guilabel:`Next`.

#. Select :menuselection:`Next` and browse to the location of your sources.  The
   folder that is opened should have the ``CMakeLists.txt`` and ``prj.conf`` files.

#. Select :menuselection:`Next` and select the appropriate MCU.
   Press :guilabel:`Finish` and your project should now be available.
   However, more actions must still be done in order to configure it properly.

#. Right-click on the newly created project in the workspace, and select
   :guilabel:`Properties`.

#. Go to the :guilabel:`C/C++ Build` page and set the Generator
   to ``Ninja``.  In :guilabel:`Other Options`, specify the target ``BOARD`` in
   CMake argument format. If an out-of-tree board is targeted, the ``BOARD_ROOT``
   option must also be set. The resulting settings page should look similar to this:

   .. figure:: img/stm32cube_project_properties.webp
      :align: center
      :alt: Properties dialog for project

   These options may or may not be needed depending on if you have an
   out-of-tree project or not.

#. Go to the :menuselection:`C/C++ General --> Preprocessor Include` page.
   Select the :guilabel:`GNU C` language, and click on the
   :menuselection:`CDT User Settings Entries` option.

   .. figure:: img/stm32cube_preprocessor_include.webp
      :align: center
      :alt: Properties dialog for preprocessor options

   Click :guilabel:`Add` to add an :guilabel:`Include File`
   that points to Zephyr's ``autoconf.h``, which is located in
   ``<build dir>/zephyr/include/generated/autoconf.h``. This will ensure
   that STM32CubeIDE picks up Zephyr configuration options.
   The following dialog will be shown.  Fill it in as follows:

   .. figure:: img/stm32cube_add_include.webp
      :align: center
      :alt: Add include file dialog

   Once the include file has been added, your properties page should look
   similar to the following:

   .. figure:: img/stm32cube_autoconf_h.webp
      :align: center
      :alt: Properties page after adding autoconf.h file

#. Click :guilabel:`Apply and Close`

#. You may now build the project using the :guilabel:`Build` button on the toolbar.
   The project can be run using the :guilabel:`Run` button, as well as debugged
   using the :guilabel:`Debug` button.

Troubleshooting
***************

When configuring your project you see an error that looks similar to:

.. code-block::

  Error message: Traceback (most recent call last):

    File "/path/to/zephyr/scripts/list_boards.py", line 11, in <module>
      import pykwalify.core

  ModuleNotFoundError: No module named 'pykwalify'


This means that you did not start the IDE in a Zephyr environment.  You must
delete the ``config_default`` build directory and start STM32CubeIDE again,
making sure that you can run ``west`` in the shell that you start STM32CubeIDE
from.

.. _STM32CubeIDE: https://www.st.com/en/development-tools/stm32cubeide.html
