리눅스 커널 인터럽트 진입시 현재상태 저장

리눅스는 인터럽트 발생시 빠르게 레지스터값을 저장한다. 저장하는 함수는 __irq_svc이다. 이 코드는 어셈은 다음과 같다. https://github.com/raspberrypi/linux/blob/abaa3760da89d6fb38e55473fffc9a31dd0b1d7a/arch/arm/kernel/entry-armv.S#L206 좀 더 자세히 알아보기위해 어셈코드를 확인해보자. 커널을 빌드할때 심볼값인 System.map을 확인하자. __irq_svc의 함수의 시작은 0xc0009940 이고 끝나는 지점은 0xc00099bc 알수 있다. 다음은 위 커맨드를 입력한 출력값이다. 다음은 stm명령어를 통해 레지스터값을 전부 스택에 저장한다. http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0204ik/Cihcadda.html