Skip to content

Commit 7c0dd13

Browse files
committed
[Silicon Labs][CMSIS] Patch CMSIS v4.2+ macros into mbed
The current version of cmsis shipping with mbed does not provide the __IOM and friends macros that became standard with CMSIS 4.2+. Patching these into CMSIS to allow vendors to continue updating their support libraries, awaiting a full CMSIS update in mbed (which is past due now).
1 parent 3c450f1 commit 7c0dd13

File tree

5 files changed

+40
-0
lines changed

5 files changed

+40
-0
lines changed

cmsis/core_cm0.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,14 @@
197197
#define __O volatile /*!< Defines 'write only' permissions */
198198
#define __IO volatile /*!< Defines 'read / write' permissions */
199199

200+
#ifdef __cplusplus
201+
#define __IM volatile /*!< Defines 'read only' permissions */
202+
#else
203+
#define __IM volatile const /*!< Defines 'read only' permissions */
204+
#endif
205+
#define __OM volatile /*!< Defines 'write only' permissions */
206+
#define __IOM volatile /*!< Defines 'read / write' permissions */
207+
200208
/*@} end of group Cortex_M0 */
201209

202210

cmsis/core_cm0plus.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,14 @@
207207
#define __O volatile /*!< Defines 'write only' permissions */
208208
#define __IO volatile /*!< Defines 'read / write' permissions */
209209

210+
#ifdef __cplusplus
211+
#define __IM volatile /*!< Defines 'read only' permissions */
212+
#else
213+
#define __IM volatile const /*!< Defines 'read only' permissions */
214+
#endif
215+
#define __OM volatile /*!< Defines 'write only' permissions */
216+
#define __IOM volatile /*!< Defines 'read / write' permissions */
217+
210218
/*@} end of group Cortex-M0+ */
211219

212220

cmsis/core_cm3.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -202,6 +202,14 @@
202202
#define __O volatile /*!< Defines 'write only' permissions */
203203
#define __IO volatile /*!< Defines 'read / write' permissions */
204204

205+
#ifdef __cplusplus
206+
#define __IM volatile /*!< Defines 'read only' permissions */
207+
#else
208+
#define __IM volatile const /*!< Defines 'read only' permissions */
209+
#endif
210+
#define __OM volatile /*!< Defines 'write only' permissions */
211+
#define __IOM volatile /*!< Defines 'read / write' permissions */
212+
205213
/*@} end of group Cortex_M3 */
206214

207215

cmsis/core_cm4.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,14 @@
248248
#define __O volatile /*!< Defines 'write only' permissions */
249249
#define __IO volatile /*!< Defines 'read / write' permissions */
250250

251+
#ifdef __cplusplus
252+
#define __IM volatile /*!< Defines 'read only' permissions */
253+
#else
254+
#define __IM volatile const /*!< Defines 'read only' permissions */
255+
#endif
256+
#define __OM volatile /*!< Defines 'write only' permissions */
257+
#define __IOM volatile /*!< Defines 'read / write' permissions */
258+
251259
/*@} end of group Cortex_M4 */
252260

253261

cmsis/core_cm7.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,14 @@
263263
#define __O volatile /*!< Defines 'write only' permissions */
264264
#define __IO volatile /*!< Defines 'read / write' permissions */
265265

266+
#ifdef __cplusplus
267+
#define __IM volatile /*!< Defines 'read only' permissions */
268+
#else
269+
#define __IM volatile const /*!< Defines 'read only' permissions */
270+
#endif
271+
#define __OM volatile /*!< Defines 'write only' permissions */
272+
#define __IOM volatile /*!< Defines 'read / write' permissions */
273+
266274
/*@} end of group Cortex_M7 */
267275

268276

0 commit comments

Comments
 (0)