Presentation is loading. Please wait.

Presentation is loading. Please wait.

ARM Development Suite v1.2

Similar presentations


Presentation on theme: "ARM Development Suite v1.2"— Presentation transcript:

1 ARM Development Suite v1.2

2 Branch Instructions 상대 분기 절대 분기 하드웨어 분기 현재 PC 값을 기준으로 +/- 하여 분기 B/BL
BX 하드웨어 분기 예외 발생시 하드웨어적으로 특정 번지로 절대 분기

3

4

5

6

7

8

9 PSR (Program Status Register)

10 PSR Transfer Instructions
MRS, MSR PSR에 값을 써넣거나 PSR에 있는 값을 레지스터에 저장하기 위해서는 MOV나 LDR 등의 명령을 쓰지 않고 위의 명령어 사용 MRS : PSR 값을 레지스터에 저장 MRS{<cond>} Rd, <psr> MSR : 레지스터의 값을 PSR에 저장 MSR{<cond>} <psr>_<fields>, Rm

11 PSR Transfer Instructions
usr/sys 모드에서는 spsr을 접근할 수 없으며 cpsr의 제어필드는 usr모드에서 바꿀 수 없다. 특권모드에서는 cpsr의 제어필드를 바꾸어 인터럽트 마스크 설정 및 모드를 바꿀 수 있다. 그러나 T플래그를 변화시키는 것은 금지되어 있다. Ex) 특권 모드에서 SVC 모드로 바꾸기 위한 프로그램 MRS R0, CPSR ; CPSR를 읽어 R0에 적재한다. BIC R0, R0, #0x1F ; 읽어 온 데이터에 대하여 모드 비트를 0으로 설정한다. ORR R0, R0, #0x13 ; 모드 비트의 내용을 SVC 모드 값으로 바꾼다. MSR CPSR_c, R0 ; 바꾼 값을 다시 CPSR의 제어(control) 필드에 넣는다.

12 SWI (Software Interrupt)
소프트웨어적으로 예외를 발생시켜 USR모드에서 특권모드인 SVC 모드로 진입하기 위하여 사용 SWI{<cond>} <Immde_24> SWI 예외 발생시 R14_svc에 SWI 명령어의 다음 주소 값이 기록 R14_svc 값을 읽어 -4 한 값이 SWI 명령어의 주소 SWI 명령어를 읽어 LSB 24-bit 추출하여 SWI 번호 획득 SWI 번호에 따라 세부 핸들러 호출 SWI를 통한 세미호스팅(Semi-hosting) 기능 구현

13 SWP SWP 일종의 메모리 교환 명령어 LDR/STR를 한번에 처리 SWP{<cond>}{B} <Rd>, <Rm>, [<Rn>] 운영체제에서 제공하는 semaphore를 만들기 위하여 사용되는 이유로 semaphore 명령어라고도 불림


Download ppt "ARM Development Suite v1.2"

Similar presentations


Ads by Google