Exception entry and return : EXC_RETURN
ARM-Cortex M 시리즈에서는 컴파일러의 최적화에 따라서 다르지만 서브루틴을 호출하면 원래의 위치로 복귀하기 위해서 LR(Link Register)에 PC의 내용을 저장하게 됩니다. 하지만 Exception(혹은 Interrupt)상황에서는 LR에 아래와 같은 이상한 값들이 저장됩니다. 0xFFFFFFF1 0xFFFFFFF9 0xFFFFFFFD 0xFFFFFFE1 0xFFFFFFE9 0xFFFFFFED 왜 이럴까요? 결론적으로 말씀드리자면 Exception 해제시 Handler/Thread Mode, MSP/PSP를 시스템이 알기 위해서 입니다. 위의 값을 EXC_RETURN 값이라고 하는데 이 값들이 LR에 저장이 되고 Exception 해제시 시스템이 LR을 읽어 진입시의 상태로 되돌릴 수 ..