Page 149 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 149
ARMv7개열의 ARM12칩으로 나온 것이 Cortex칩이다. Cortex칩은 크게 3가지의
A, R, M타입으로 구분된다. 임베디드 시스템은 가격에 민감하기 때문에 비용적인 문제를 해결
하기 위해 Family를 3개로 나눴다. 용도에 맞게 가격과 성능을 고려한 적합한 모듈을 선택할
수 있기 때문이다.
-General Register
전통적인 ARM(ARM7,ARM9) 에서는 7개의 동작 모드별로 Banked Register 가 있었으나
Cortex-M3 에 와서는 R13이 Main Stack Pointer와 Process Stack Pointer 로
구분되어 Banked Register로 존재하고 나머지 레지스터는 Cortex-M3 동작 모드(Thread
Mode, Handler Mode) 에 상관없이 1개씩만 존재한다. 16-bit Thumb 명령어 에서는 R0 ~
R7 레지스터만 사용이 되고 32-bit Thumb2 명령어에서는 R0 ~ R15가 모두 사용이 된다.
Stack Pointer (R13) 는 항상 4-Byte정렬이 되어 운영 되어야 하므로 Stack Pointer의 하위
2비트는 항상 '2b00' 이 되어야 한다. 그리고 Stack은 Full Descending 방식으로 운영이 된
다. Linked Register(R14) 는 전통적인 ARM과 마찬 가지로 BLX 명령어 사용 시 복귀 할 주
소가 저장 되어 있다. Program Counter(R15)는 당연히 현재 실행하고 있는 명령어의 주소
를 가지고 있다. 그러므로 실제 PC는 현재 실행하고 있는 명령어 다음 다음의 명령어의 주
소가 저장되어 있다.
- 142 -