This repository has been archived on 2023-11-05. You can view files and clone it, but cannot push or open issues or pull requests.
FreeRTOS-Kernel/FreeRTOS/Demo/CORTEX_LM3S316_IAR/registertest.s
2012-08-11 21:34:11 +00:00

61 lines
991 B
ArmAsm

RSEG ICODE:CODE
EXTERN vSetErrorLED
PUBLIC vSetAndCheckRegisters
vSetAndCheckRegisters:
/* Fill the general purpose registers with known values. */
mov r11, #10
add r0, r11, #1
add r1, r11, #2
add r2, r11, #3
add r3, r11, #4
add r4, r11, #5
add r5, r11, #6
add r6, r11, #7
add r7, r11, #8
add r8, r11, #9
add r9, r11, #10
add r10, r11, #11
add r12, r11, #12
/* Check the values are as expected. */
cmp r11, #10
bne set_error_led
cmp r0, #11
bne set_error_led
cmp r1, #12
bne set_error_led
cmp r2, #13
bne set_error_led
cmp r3, #14
bne set_error_led
cmp r4, #15
bne set_error_led
cmp r5, #16
bne set_error_led
cmp r6, #17
bne set_error_led
cmp r7, #18
bne set_error_led
cmp r8, #19
bne set_error_led
cmp r9, #20
bne set_error_led
cmp r10, #21
bne set_error_led
cmp r12, #22
bne set_error_led
bx lr
set_error_led:
push {r14}
ldr r1, =vSetErrorLED
blx r1
pop {r14}
bx lr
END