]> jspc29.x-matter.uni-frankfurt.de Git - mvd_firmware.git/commitdiff
changed optimization for some inline assembler due to compile error
authorJan Michel <j.michel@gsi.de>
Mon, 6 Jan 2014 13:20:35 +0000 (14:20 +0100)
committerJan Michel <j.michel@gsi.de>
Mon, 6 Jan 2014 13:20:35 +0000 (14:20 +0100)
firmware/libs/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c
firmware/libs/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport/core_cm3.h

index 56fddc52bfc0513f5b0aa7c927c3488f357ba071..b8835776ebb492b3d0a82dbd2fb9df0016faad0d 100644 (file)
@@ -390,12 +390,15 @@ uint32_t __LDREXW(uint32_t *addr)
  *\r
  * Exclusive STR command for 8 bit values\r
  */\r
-uint32_t __STREXB(uint8_t value, uint8_t *addr)\r
+//uint32_t __STREXB(uint8_t value, uint8_t *addr)\r
+__attribute__( ( always_inline , optimize("O0")) ) static __INLINE uint32_t __STREXB(uint8_t value, uint8_t *addr)\r
 {\r
   __ASM("strexb r0, r0, [r1]");\r
   __ASM("bx lr");\r
 }\r
 \r
+\r
+\r
 /**\r
  * @brief  STR Exclusive (16 bit)\r
  *\r
@@ -405,7 +408,8 @@ uint32_t __STREXB(uint8_t value, uint8_t *addr)
  *\r
  * Exclusive STR command for 16 bit values\r
  */\r
-uint32_t __STREXH(uint16_t value, uint16_t *addr)\r
+//uint32_t __STREXH(uint16_t value, uint16_t *addr)\r
+__attribute__( ( always_inline , optimize("O0")) ) static __INLINE uint32_t __STREXH(uint16_t value, uint16_t *addr)\r
 {\r
   __ASM("strexh r0, r0, [r1]");\r
   __ASM("bx lr");\r
@@ -729,7 +733,8 @@ uint32_t __LDREXW(uint32_t *addr)
  *\r
  * Exclusive STR command for 8 bit values\r
  */\r
-uint32_t __STREXB(uint8_t value, uint8_t *addr)\r
+//uint32_t __STREXB(uint8_t value, uint8_t *addr)\r
+__attribute__( ( always_inline , optimize("O0")) ) static __INLINE uint32_t __STREXB(uint8_t value, uint8_t *addr)\r
 {\r
    uint32_t result=0;\r
   \r
@@ -746,7 +751,8 @@ uint32_t __STREXB(uint8_t value, uint8_t *addr)
  *\r
  * Exclusive STR command for 16 bit values\r
  */\r
-uint32_t __STREXH(uint16_t value, uint16_t *addr)\r
+//uint32_t __STREXH(uint16_t value, uint16_t *addr)\r
+__attribute__( ( always_inline , optimize("O0")) ) static __INLINE uint32_t __STREXH(uint16_t value, uint16_t *addr)\r
 {\r
    uint32_t result=0;\r
   \r
index 2b6b51a7d599ec0f989e2cfb3a601de5a5b0881b..9e69e47e6ea78777b7d2749fbba31353f1ef8c68 100644 (file)
@@ -1173,6 +1173,7 @@ extern uint32_t __LDREXW(uint32_t *addr);
  * Exclusive STR command for 8 bit values\r
  */\r
 extern uint32_t __STREXB(uint8_t value, uint8_t *addr);\r
+//__attribute__( ( always_inline , optimize("O0")) ) extern uint32_t __STREXB(uint8_t value, volatile uint8_t *addr)\r
 \r
 /**\r
  * @brief  STR Exclusive (16 bit)\r
@@ -1184,6 +1185,7 @@ extern uint32_t __STREXB(uint8_t value, uint8_t *addr);
  * Exclusive STR command for 16 bit values\r
  */\r
 extern uint32_t __STREXH(uint16_t value, uint16_t *addr);\r
+//__attribute__( ( always_inline , optimize("O0")) ) extern uint32_t __STREXH(uint16_t value, uint16_t *addr)\r
 \r
 /**\r
  * @brief  STR Exclusive (32 bit)\r