@@ -101,6 +101,92 @@ An example of :ref:`projectconf` with enabled ``rtos``
101
101
build_flags = -D PIO_FRAMEWORK_MBED_RTOS_PRESENT
102
102
103
103
104
+ Custom version of Mbed
105
+ ^^^^^^^^^^^^^^^^^^^^^^
106
+
107
+ PlatformIO only has certain versions of mbed-os in the official package package
108
+ registry, as queryable through `the API
109
+ <https://api.registry.platformio.org/v3/packages/platformio/tool/framework-mbed> `_.
110
+
111
+ If you want to use another release of the Mbed framework, you can use the
112
+ `plateform_packages ` config option as described below.
113
+
114
+ .. warning ::
115
+
116
+ Using a custom version of mbed-os is not officially supported by platformio. There is
117
+ no guarantee a given version of mbed-os will work with platformio. This is
118
+ recommended for Advanced Users only and may require knowledge of the Python ecosystem
119
+ to install missing dependencies etc.
120
+
121
+
122
+ The `platformio.ini ` file should have a `plateform_packages ` config entry which
123
+ references a directory containing `mbed-os <https://github.com/ARMmbed/mbed-os >`_
124
+ itself, plus the platformio `mbed builder code
125
+ <https://github.com/platformio/builder-framework-mbed> `_ and a `package.json ` file like:
126
+
127
+ .. code-block :: json
128
+
129
+ {
130
+ "name" : " framework-mbed" ,
131
+ "version" : " 6.61500.211003" ,
132
+ "description" : " Arm Mbed OS is a platform operating system designed for the internet of things" ,
133
+ "keywords" : [
134
+ " framework" ,
135
+ " os" ,
136
+ " arm" ,
137
+ " hal"
138
+ ],
139
+ "homepage" : " http://mbed.org" ,
140
+ "repository" : {
141
+ "type" : " git" ,
142
+ "url" : " https://github.com/ARMmbed/mbed-os"
143
+ }
144
+ }
145
+
146
+ For example, to use the version 6.15 of mbed-os, you may:
147
+
148
+ .. code-block :: bash
149
+
150
+ ~ $ git clone https://github.com/ARMmbed/mbed-os framework-mbed
151
+ ~ $ cd framework-mbed
152
+ ~ /framework-mbed$ git checkout mbed-os-6.15.0
153
+ ~ /framework-mbed$ git clone https://github.com/platformio/builder-framework-mbed# platformio
154
+ ~ /framework-mbed$ cat > package.json << EOF
155
+ {
156
+ "name": "framework-mbed",
157
+ "version": "6.61500.211003",
158
+ "description": "Arm Mbed OS is a platform operating system designed for the internet of things",
159
+ "keywords": [
160
+ "framework",
161
+ "os",
162
+ "arm",
163
+ "hal"
164
+ ],
165
+ "homepage": "http://mbed.org",
166
+ "repository": {
167
+ "type": "git",
168
+ "url": "https://github.com/ARMmbed/mbed-os"
169
+ }
170
+ }
171
+ EOF
172
+
173
+ Then add the ` platform_packages
174
+ < https://docs.platformio.org/en/latest/projectconf/section_env_platform.html#platform-packages> ` _
175
+ config optin in the ` platformio.ini` file like:
176
+
177
+ .. code-block:: ini
178
+
179
+ [env:mproject]
180
+ platform = ststm32
181
+ framework = mbed
182
+ platform_packages =
183
+ framework-mbed @ file://framework-mbed
184
+ board = nucleo_f303ze
185
+
186
+ to build the project for a NUCLEO-F303ZE board using mbed-os 6.15.0 (and make the
187
+ USBDevice work).
188
+
189
+
104
190
Build profiles
105
191
~~~~~~~~~~~~~~
106
192
0 commit comments