ARM으로 배우는 임베디드 리눅스 시스템 6장 연습문제

1. 예외 처리 벡터 테이블에서 사용가능한 명령
 - B명령이 사용됨, 하지만 B명령은 PC값을 기준으로 32MB를 넘으면 사용하지 못함
 - 이럴경우 MOV 또는 LDR명령과 함께 PC값을 대상 레지스터로 사용

2. 예외 처리에서 복귀할 때 해야 할 동작
 - PC값을 LR_<mode>로부터 복원한다.
 - SPSR_<mode>를 CPSR로 복원한다.
 - 위 두 동작은 하나의 명령에 의해서 동시에 하나의 명령으로 이루어져야 한다.

3. 예외 처리에서 복귀할 때 명령어
 - 데이터 처리 명령에 S 접미사를 사용하고 PC를 대상 레지스터로 지정
 - LDM 명령을 사용하면서 레지스터 리스트에 PC가 있고, 레지스터 리스트 뒤에 '^'을 사용
 - 아키텍쳐 v6 이후에는 RFE명령을 사용

4. FIQ와 IRQ 예외 처리는 언제 발생하는가
 - FIQ와 IRQ는 모두 외부의 입출력 장치에서 입출력 동작의 처리 요청에 의해 발생

5. 메모리에서 데이터를 읽거나 쓰다가 오류가 발생하면 어떤 예외 처리가 발생하는가
 - Data Abort가 발생한다

6. SWI 예외 처리는 언제 발생하며 명령어 파이프라인의 어느 단계에서 발생하는가
 - SWI예외 처리는 명령어를 해석하는 단계에서 발생한다.(디코드)

7. Secre Mnitor 호출 예외 처리는 어떻게 발생시킬 수 있으며 왜 필요한가
 - SMC 명령에 의해서 발생하며 Secure 모드와 Non-secure모드 변환을 위해서 사용된다.

8. ARM에 리셋이 구동되면 어떤 ㄷㅇ작 모드의 어떤 동작 상태가 되는가
 - SVC모드의 ARM상태가 된다.

댓글

이 블로그의 인기 게시물

파이썬을 이용한 image to pdf 변환 프로그램

젯슨 나노 - GPIO