코스웨어/15년 스마트컨트롤러

2015-11-27 ARM Assembly 개인업무일지 - 천정호

알 수 없는 사용자 2015. 11. 29. 23:51
728x90
반응형




R0 ~ R3까지의 레지스터는 주로 함수의 인자로 사용이 되며 레지스터중에 가장 많이 사용이 된다.

ARM에서 인자는 4개까지 레지스터로 사용이 가능하다.

내부 변수는 7개까지 레지스터로 사용하며 이 이상의 인자와 내부 변수는 스택에 모두 할당이 된다.



함수의 반환값은 R0에 저장이 되어 반환이 된다.

함수의 R4 ~ R11까지는 사용전에 스택에 내용을 저장하고 함수가 끝나기전에 원래의 값으로 복원시켜줘야한다.


R12 ~ R15 레지스터들은 특수기능을 수행하는 레지스터이므로 함부로 건들지 않는것이 좋다.

R12 - Long Branch시에 Veneer를 통해 주소 할당 시에 임시 보관소로 사용

R13 - Stack Pointer

R14 - Jump시에 돌아올 곳의 주소를 저장

R15 - 현재 실행중인 주소를 저장


인터럽트는 Exception의 일종으로 Interrupt Exception이 발생하면 IRQ나 FIQ의 핸들러 명령으로 이동한다.

중첩인터럽트 Nesting는 인터럽트 처리중에 또 다른 인터럽트가 발생되는것이다.

중첩인터럽트를 사용하면 인터럽트의 명령을 최대한 짧게 작성하여 빠른시간내에 원래의 동작으로 돌아가게 만들어야한다.


SOC (System On Chip)

하나의 칩에 메모리와 다른 부가기능을 넣어서 칩하나로만 작동이 가능하도록 구성되어진 칩을 말한다.




AMBA

칩내부 IP들이 통신하기 위한 프로토콜

AMBA에는 AHB, APB, ASB가 존재한다.








728x90