comparison libs/STM32F10x_StdPeriph_Lib_V3.5.0/Libraries/CMSIS/CM3/CoreSupport/core_cm3.c @ 81:d7002925c15d

Fix compilation on newer toolchain. http://www.atollic.com/index.php/kb/1-kb_building/117-kb_error_in_strexb
author Daniel O'Connor <darius@dons.net.au>
date Mon, 02 Mar 2015 14:30:58 +1030
parents c59513fd84fb
children
comparison
equal deleted inserted replaced
80:1a4573062b37 81:d7002925c15d
731 */ 731 */
732 uint32_t __STREXB(uint8_t value, uint8_t *addr) 732 uint32_t __STREXB(uint8_t value, uint8_t *addr)
733 { 733 {
734 uint32_t result=0; 734 uint32_t result=0;
735 735
736 __ASM volatile ("strexb %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); 736 __ASM volatile ("strexb %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );
737 return(result); 737 return(result);
738 } 738 }
739 739
740 /** 740 /**
741 * @brief STR Exclusive (16 bit) 741 * @brief STR Exclusive (16 bit)
748 */ 748 */
749 uint32_t __STREXH(uint16_t value, uint16_t *addr) 749 uint32_t __STREXH(uint16_t value, uint16_t *addr)
750 { 750 {
751 uint32_t result=0; 751 uint32_t result=0;
752 752
753 __ASM volatile ("strexh %0, %2, [%1]" : "=r" (result) : "r" (addr), "r" (value) ); 753 __ASM volatile ("strexh %0, %2, [%1]" : "=&r" (result) : "r" (addr), "r" (value) );
754 return(result); 754 return(result);
755 } 755 }
756 756
757 /** 757 /**
758 * @brief STR Exclusive (32 bit) 758 * @brief STR Exclusive (32 bit)