File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -127,12 +127,15 @@ bool cpu_check_address(volatile const char *address)
127127
128128 /* R5 will be set to 0 by HardFault handler */
129129 /* to indicate HardFault has occured */
130- register uint32_t result __asm("r5" ) = 1 ;
130+ register bool result __asm("r5" ) = 1 ; /* set default return value */
131+ register uint32_t sign1 __asm("r1" ) = 0xDEADF00D ; /* set magic number */
132+ register uint32_t sign2 __asm("r2" ) = 0xCAFEBABE ; /* 2nd magic to be sure */
133+ uint32_t scratch ;
131134
132135 __asm__ volatile (
133- "ldr r1, =0xDEADF00D \n" /* set magic number */
134- "ldr r2, =0xCAFEBABE \n" /* 2nd magic to be sure */
135- "ldrb r3, [r0] \n" /* probe address */
136+ "ldrb %[scratch], [%[address]] \n" /* probe address */
137+ : "=r" ( result ),[ scratch ] "=l" ( scratch )
138+ :[ address ] "l" ( address ), "r" ( result ), "r" ( sign1 ), "r" ( sign2 )
136139 );
137140
138141 return result ;
You can’t perform that action at this time.
0 commit comments