Fixed IAR Embedded Workbench IDE (6.10.1.52143) asm error issue

Signed-off-by: lanxb <lanlxb@163.com>
pull/13/head
lanxb 8 years ago
parent 64e09ce618
commit 017dc879a6

@ -327,24 +327,25 @@ if (!(EXPR)) \
bx lr bx lr
} }
#elif defined(__ICCARM__) #elif defined(__ICCARM__)
/* IAR iccarm specific functions */
/* Close Raw Asm Code Warning */
#pragma diag_suppress=Pe940
static uint32_t cmb_get_msp(void) static uint32_t cmb_get_msp(void)
{ {
register uint32_t result; __asm("mrs r0, msp");
__asm("MRS %0, msp" : "=r" (result)); __asm("bx lr");
return(result);
} }
static uint32_t cmb_get_psp(void) static uint32_t cmb_get_psp(void)
{ {
register uint32_t result; __asm("mrs r0, psp");
__asm("MRS %0, psp" : "=r" (result)); __asm("bx lr");
return(result);
} }
static uint32_t cmb_get_sp(void) static uint32_t cmb_get_sp(void)
{ {
register uint32_t result; __asm("mov r0, sp");
__asm("MOV %0, sp" : "=r" (result)); __asm("bx lr");
return(result);
} }
#pragma diag_default=Pe940
#elif defined(__GNUC__) #elif defined(__GNUC__)
__attribute__( ( always_inline ) ) static inline uint32_t cmb_get_msp(void) { __attribute__( ( always_inline ) ) static inline uint32_t cmb_get_msp(void) {
register uint32_t result; register uint32_t result;

Loading…
Cancel
Save