Skip to content

Commit 05ad0ae

Browse files
rm5248mmahadevan108
authored andcommitted
doc: develop: tools: Add STM32CubeIDE directions
Add directions on using STM32CubeIDE for developing Zephyr. Signed-off-by: Robert Middleton <[email protected]>
1 parent 79f742f commit 05ad0ae

File tree

7 files changed

+111
-0
lines changed

7 files changed

+111
-0
lines changed
8.13 KB
Loading
32.8 KB
Loading
28.1 KB
Loading
31.2 KB
Loading
23.9 KB
Loading

doc/develop/tools/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ Tools and IDEs
88

99
clion.rst
1010
coccinelle.rst
11+
stm32cubeide.rst
1112
vscode.rst

doc/develop/tools/stm32cubeide.rst

Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
.. _stm32cube_ide:
2+
3+
STM32CubeIDE
4+
############
5+
6+
STM32CubeIDE_ is an Eclipse-based integrated development environment from STMicroelectronics designed for the STM32 series of MCUs and MPUs.
7+
8+
This guide describes the process of setting up, building, and debugging Zephyr
9+
applications using the IDE.
10+
11+
A project must have already been created with Zephyr and west.
12+
13+
These directions have been validated to work with version 1.16.0 of the IDE
14+
on Linux.
15+
16+
Project Setup
17+
*************
18+
19+
#. Before you start, make sure you have a working Zephyr development environment, as per the
20+
instructions in the :ref:`getting_started`.
21+
22+
#. Run STM32CubeIDE from your Zephyr environment. Example:
23+
24+
.. code-block::
25+
26+
$ /opt/st/stm32cubeide_1.16.0/stm32cubeide
27+
28+
#. Open your already existing project by going to
29+
:menuselection:`File --> New --> STM32 CMake Project`:
30+
31+
.. figure:: img/stm32cube_new_cmake.webp
32+
:align: center
33+
:alt: Create new CMake project
34+
35+
#. Select :guilabel:`Project with existing CMake sources`, then click :guilabel:`Next`.
36+
37+
#. Select :menuselection:`Next` and browse to the location of your sources. The
38+
folder that is opened should have the ``CMakeLists.txt`` and ``prj.conf`` files.
39+
40+
#. Select :menuselection:`Next` and select the appropriate MCU.
41+
Press :guilabel:`Finish` and your project should now be available.
42+
However, more actions must still be done in order to configure it properly.
43+
44+
#. Right-click on the newly created project in the workspace, and select
45+
:guilabel:`Properties`.
46+
47+
#. Go to the :guilabel:`C/C++ Build` page and set the Generator
48+
to ``Ninja``. In :guilabel:`Other Options`, specify the target ``BOARD`` in
49+
CMake argument format. If an out-of-tree board is targeted, the ``BOARD_ROOT``
50+
option must also be set. The resulting settings page should look similar to this:
51+
52+
.. figure:: img/stm32cube_project_properties.webp
53+
:align: center
54+
:alt: Properties dialog for project
55+
56+
These options may or may not be needed depending on if you have an
57+
out-of-tree project or not.
58+
59+
#. Go to the :menuselection:`C/C++ General --> Preprocessor Include` page.
60+
Select the :guilabel:`GNU C` language, and click on the
61+
:menuselection:`CDT User Settings Entries` option.
62+
63+
.. figure:: img/stm32cube_preprocessor_include.webp
64+
:align: center
65+
:alt: Properties dialog for preprocessor options
66+
67+
Click :guilabel:`Add` to add an :guilabel:`Include File`
68+
that points to Zephyr's ``autoconf.h``, which is located in
69+
``<build dir>/zephyr/include/generated/autoconf.h``. This will ensure
70+
that STM32CubeIDE picks up Zephyr configuration options.
71+
The following dialog will be shown. Fill it in as follows:
72+
73+
.. figure:: img/stm32cube_add_include.webp
74+
:align: center
75+
:alt: Add include file dialog
76+
77+
Once the include file has been added, your properties page should look
78+
similar to the following:
79+
80+
.. figure:: img/stm32cube_autoconf_h.webp
81+
:align: center
82+
:alt: Properties page after adding autoconf.h file
83+
84+
#. Click :guilabel:`Apply and Close`
85+
86+
#. You may now build the project using the :guilabel:`Build` button on the toolbar.
87+
The project can be run using the :guilabel:`Run` button, as well as debugged
88+
using the :guilabel:`Debug` button.
89+
90+
Troubleshooting
91+
***************
92+
93+
When configuring your project you see an error that looks similar to:
94+
95+
.. code-block::
96+
97+
Error message: Traceback (most recent call last):
98+
99+
File "/path/to/zephyr/scripts/list_boards.py", line 11, in <module>
100+
import pykwalify.core
101+
102+
ModuleNotFoundError: No module named 'pykwalify'
103+
104+
105+
This means that you did not start the IDE in a Zephyr environment. You must
106+
delete the ``config_default`` build directory and start STM32CubeIDE again,
107+
making sure that you can run ``west`` in the shell that you start STM32CubeIDE
108+
from.
109+
110+
.. _STM32CubeIDE: https://www.st.com/en/development-tools/stm32cubeide.html

0 commit comments

Comments
 (0)