==================================Outline====================================
ARM 레지스터
ARM 모드
Exception
----------------------------------------------------------------------------
ARM 레지스터
임베디드 레시피 책을 보자.
ARM은 37개의 레지스터를 가지고 있다.
각 모드별로 호환될 때 CPSR(Current Program Status Register)에 레지스터의 상태값(context)이 저장되고 모드가 전환될 시 CPSR값을 SPSR(Saved Program Status Register)에 저장하게 된다.
모드가 변경되면 banked register가 덮어지게 되며 원래 레지스터로 복구 되면 기존의 레지스터 값은 복원된다.
R14 (Linked Register) = Return Address 저장 레지스터
R13 (Stack Pointer) = ESP(Intel)
R15 (Program counter) = EIP(Intel)
ARM 모드
ARM모드에 대해 알아보자.
총 7개의 모드가 있다.
기본적으로 SVC 모드로 설정이 된다.
user mode에서는 privileged mode로 이동할 수 없고 privileged mode 사이에는 자유롭게 모드의 이동이 가능하다.
Exception
예외적인 일이 발생했을 때 프로그램이 점프하는 것을 exception이라고 한다.
//interrupt도 exception에 포함된다.
/* Exception vectors (should be a branch to be detected as a valid code by the rom */
_exception_vectors:
reset_vector:
ldrpc, =reset_handler
undef_vector:
bundef_vector /* Undefined Instruction */
swi_vector:
bswi_vector /* Software Interrupt */
pabt_vector:
bpabt_vector /* Prefetch Abort */
dabt_vector:
bdabt_vector /* Data Abort */
rsvd_vector:
brsvd_vector /* reserved */
irq_vector:
birq_handler /* IRQ : read the AIC */
fiq_vector:
/*------------------------------------------------------------------------------
*- Function : fiq_handler
*- Treatments : FIQ Interrupt Handler.
*- Called Functions :
*------------------------------------------------------------------------------*/
fiq_handler:
bfiq_handler
fiq는 가장 우선으로 처리해야 하기 때문에 fiq를 위한 코드 최적화이다. fiq가 벡터 가운데 가장 아래에 있다.
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20151126 업무일지 -여지윤- ARM Assembly (9) | 2015.11.27 |
---|---|
20151126_안향진_ARM어셈블리_1 (8) | 2015.11.27 |
20151126 엄민웅 - arm 임베디드레시피 이론 수업 (교제 84~126) (6) | 2015.11.27 |
20151126 임현수 업무일지 ARM #1 ARM 기초 (6) | 2015.11.27 |
20151126_김태현_ARM 어셈블리 (5) | 2015.11.26 |
20151126-김재홍-ARM_Assembly_1일차 (6) | 2015.11.26 |
20151126 - 홍준모 업무일지 ARM. ASM 임베디드 레시피 책 이론 수업 (6) | 2015.11.26 |
20151126 - 강동조 개인업무일지 ARM (6) | 2015.11.26 |