<ARM 어셈블리>
=모드 (오스트랄로피테쿠스 다이아몬드 구슬치기)
=UND : 없는 명령(어셈블리 instruction)을 만났을 때
=ABT :
1. Abort mode는 Access 하려는 주소가 Access 할 수 없는 주소
2. Instruction fetch를 해오려는 데 못해 온 경우
3. MMU, MPU : Access Protection이 걸려 있는 주소를 함부로 Access하려고 했을 때
:운영체제를 기반에 두고 만든 것
=이식 : 각 CPU에 대해서 알아야함
-리눅스 : 다양한 CPU에서 동작
=레지스터
=>FIQ는 Banked register가 더 많음 => push/ pop이 필요 없는 R8~R12 먼저 사용 => 속도 빠름
=context
=하드웨어적으로 Exception
-SVC : 전원인가 / reset => 0번지로 점프(
ldr pc, =reset_handler
=Exception 7가지
<cstartup.s>
/* Exception vectors
(should be a branch to be detected as a valid code by the rom */
_exception_vectors:
reset_vector:
ldr pc, =reset_handler
undef_vector:
b undef_vector /* Undefined Instruction */
swi_vector:
b swi_vector /* Software Interrupt */
pabt_vector:
b pabt_vector /* Prefetch Abort */
dabt_vector:
b dabt_vector /* Data Abort */
rsvd_vector:
b rsvd_vector /* reserved */
irq_vector:
b irq_handler /* IRQ : read the AIC */
fiq_vector:
/*--------------------------------------------------------------
*- Function : fiq_handler
*- Treatments : FIQ Interrupt Handler.
*- Called Functions :
*-----------------------------------------------------------------*/
fiq_handler:
b fiq_handler
=>가장 빠르게 동작하도록 FIQ는 바로 함수 실행
=Low vector
-High vector
=Vector table (arm : exception vector table)
=Exception 우선순위
'코스웨어 > 15년 스마트컨트롤러' 카테고리의 다른 글
20151127 - 권오민 - ARM ASSEMBLY 2일차 (4) | 2015.11.27 |
---|---|
2015.11.26_개인업무일지_[ASM #1]_주재민_mode (7) | 2015.11.27 |
2015.11.26_개인업무일지_[ASM #1]_이량경_mode (9) | 2015.11.27 |
20151126 업무일지 -여지윤- ARM Assembly (9) | 2015.11.27 |
20151126 엄민웅 - arm 임베디드레시피 이론 수업 (교제 84~126) (6) | 2015.11.27 |
20151126 임현수 업무일지 ARM #1 ARM 기초 (6) | 2015.11.27 |
20151126 윤재희 #1. ARM 레지스터, ARM mode, Exception (5) | 2015.11.26 |
20151126_김태현_ARM 어셈블리 (5) | 2015.11.26 |