The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Revision:
160:5571c4ff569f
Parent:
156:ff21514d8981
Child:
169:a7c7b631e539
--- a/TARGET_NUCLEO_F401RE/cmsis_compiler.h	Thu Nov 23 11:44:04 2017 +0000
+++ b/TARGET_NUCLEO_F401RE/cmsis_compiler.h	Wed Jan 17 16:13:02 2018 +0000
@@ -52,88 +52,9 @@
  * IAR Compiler
  */
 #elif defined ( __ICCARM__ )
-
-  #ifndef   __ASM
-    #define __ASM                                  __asm
-  #endif
-  #ifndef   __INLINE
-    #define __INLINE                               inline
-  #endif
-  #ifndef   __STATIC_INLINE
-    #define __STATIC_INLINE                        static inline
-  #endif
-
-  #include <cmsis_iar.h>
-
-  /* CMSIS compiler control architecture macros */
-  #if (__CORE__ == __ARM6M__) || (__CORE__ == __ARM6SM__)
-    #ifndef __ARM_ARCH_6M__
-      #define __ARM_ARCH_6M__                      1
-    #endif
-  #elif (__CORE__ == __ARM7M__)
-    #ifndef __ARM_ARCH_7M__
-      #define __ARM_ARCH_7M__                      1
-    #endif
-  #elif (__CORE__ == __ARM7EM__)
-    #ifndef __ARM_ARCH_7EM__
-      #define __ARM_ARCH_7EM__                     1
-    #endif
-  #elif (__CORE__ == __ARM8M_BASELINE__)
-    #ifndef __ARM_ARCH_8M_BASE__
-      #define __ARM_ARCH_8M_BASE__                 1
-    #endif
-  #elif (__CORE__ == __ARM8M_MAINLINE__)
-    #ifndef __ARM_ARCH_8M_MAIN__
-      #define __ARM_ARCH_8M_MAIN__                 1
-    #endif
-  #endif
-
-  // IAR version 7.8.1 and earlier do not include __ALIGNED
-  #ifndef __ALIGNED
-  #define __ALIGNED(x) __attribute__((aligned(x)))
-  #endif
+  #include <cmsis_iccarm.h>
 
-  #ifndef   __NO_RETURN
-    #define __NO_RETURN                            __noreturn
-  #endif
-  #ifndef   __USED
-    #define __USED                                 __root
-  #endif
-  #ifndef   __WEAK
-    #define __WEAK                                 __weak
-  #endif
-  #ifndef   __PACKED
-    #define __PACKED                               __packed
-  #endif
-  #ifndef   __PACKED_STRUCT
-    #define __PACKED_STRUCT                        __packed struct
-  #endif
-  #ifndef   __UNALIGNED_UINT32        /* deprecated */
-    __packed struct T_UINT32 { uint32_t v; };
-    #define __UNALIGNED_UINT32(x)                  (((struct T_UINT32 *)(x))->v)
-  #endif
-  #ifndef   __UNALIGNED_UINT16_WRITE
-    __PACKED_STRUCT T_UINT16_WRITE { uint16_t v; };
-    #define __UNALIGNED_UINT16_WRITE(addr, val)    (void)((((struct T_UINT16_WRITE *)(void *)(addr))->v) = (val))
-  #endif
-  #ifndef   __UNALIGNED_UINT16_READ
-    __PACKED_STRUCT T_UINT16_READ { uint16_t v; };
-    #define __UNALIGNED_UINT16_READ(addr)          (((const struct T_UINT16_READ *)(const void *)(addr))->v)
-  #endif
-  #ifndef   __UNALIGNED_UINT32_WRITE
-    __PACKED_STRUCT T_UINT32_WRITE { uint32_t v; };
-    #define __UNALIGNED_UINT32_WRITE(addr, val)    (void)((((struct T_UINT32_WRITE *)(void *)(addr))->v) = (val))
-  #endif
-  #ifndef   __UNALIGNED_UINT32_READ
-    __PACKED_STRUCT T_UINT32_READ { uint32_t v; };
-    #define __UNALIGNED_UINT32_READ(addr)          (((const struct T_UINT32_READ *)(const void *)(addr))->v)
-  #endif
-  #ifndef   __ALIGNED
-    #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
-    #define __ALIGNED(x)
-  #endif
-
-
+  
 /*
  * TI ARM Compiler
  */
@@ -164,6 +85,9 @@
   #ifndef   __PACKED_STRUCT
     #define __PACKED_STRUCT                        struct __attribute__((packed))
   #endif
+  #ifndef   __PACKED_UNION
+    #define __PACKED_UNION                         union __attribute__((packed))
+  #endif
   #ifndef   __UNALIGNED_UINT32        /* deprecated */
     struct __attribute__((packed)) T_UINT32 { uint32_t v; };
     #define __UNALIGNED_UINT32(x)                  (((struct T_UINT32 *)(x))->v)
@@ -187,6 +111,10 @@
   #ifndef   __ALIGNED
     #define __ALIGNED(x)                           __attribute__((aligned(x)))
   #endif
+  #ifndef   __RESTRICT
+    #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
+    #define __RESTRICT
+  #endif
 
 
 /*
@@ -223,6 +151,9 @@
   #ifndef   __PACKED_STRUCT
     #define __PACKED_STRUCT                        struct __packed__
   #endif
+  #ifndef   __PACKED_UNION
+    #define __PACKED_UNION                         union __packed__
+  #endif
   #ifndef   __UNALIGNED_UINT32        /* deprecated */
     struct __packed__ T_UINT32 { uint32_t v; };
     #define __UNALIGNED_UINT32(x)                  (((struct T_UINT32 *)(x))->v)
@@ -246,6 +177,10 @@
   #ifndef   __ALIGNED
     #define __ALIGNED(x)              __align(x)
   #endif
+  #ifndef   __RESTRICT
+    #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
+    #define __RESTRICT
+  #endif
 
 
 /*
@@ -280,6 +215,9 @@
   #ifndef   __PACKED_STRUCT
     #define __PACKED_STRUCT                        @packed struct
   #endif
+  #ifndef   __PACKED_UNION
+    #define __PACKED_UNION                         @packed union
+  #endif
   #ifndef   __UNALIGNED_UINT32        /* deprecated */
     @packed struct T_UINT32 { uint32_t v; };
     #define __UNALIGNED_UINT32(x)                  (((struct T_UINT32 *)(x))->v)
@@ -304,6 +242,10 @@
     #warning No compiler specific solution for __ALIGNED. __ALIGNED is ignored.
     #define __ALIGNED(x)
   #endif
+  #ifndef   __RESTRICT
+    #warning No compiler specific solution for __RESTRICT. __RESTRICT is ignored.
+    #define __RESTRICT
+  #endif
 
 
 #else