AAPCS(Arm Architecture Procedure Call Standard)와 EABI(Embedded Application Binary Interface)는 ARM 아키텍처 기반의 시스템에서 사용되는 응용 프로그램 바이너리 인터페이스의 다른 측면을 나타낸다. 이 둘은 서로 밀접하게 관련되어 있으며, 아래에서 그 관계를 설명하도록 한다.
AAPCS와 EABI의 관계
AAPCS 란?
AAPCS는 ARM 아키텍처에서 사용되는 응용 프로그램 바이너리 인터페이스이다. AAPCS는 함수 호출 규칙, 레지스터 사용 규칙, 매개변수 전달 규칙 등을 정의하여 소프트웨어 개발자들이 이를 참조하여 ARM 아키텍처에서 일관된 방식으로 프로그래밍을 할 수 있게 한다. 따라서, AAPCS는 ARM 아키텍처의 응용 프로그램 개발을 위한 중요한 구성 요소가 된다.
EABI 란?
EABI는 임베디드 시스템을 위해 설계된 응용 프로그램 바이너리 인터페이스이다. EABI는 코드의 이식성과 호환성을 보장하기 위해 바이너리 파일 형식, ABI 호출 규칙, 라이브러리 및 도구 등을 정의한다. 이는 다양한 임베디드 플랫폼에서 응용 프로그램을 개발하고 실행하기 위한 표준 인터페이스로 사용된다.
관계 및 연관성
EABI는 바이너리 파일 형식, ABI 호출 규칙, 라이브러리 등을 정의하는데 초점을 맞구고 있다면, AAPCS는 함수 호출규칙, 레지스터 사용 규칙, 매개변수 전달 규칙 등을 정의하는데 초점을 맞추고 있다.
즉, AAPCS는 EABI의 일부로 간주 될 수 있다. EABI는 시스템 전체적인 바이너리 인터페이스를 다루는 개념이라면, AAPCS는 ARM 아키텍처에서의 애플리케이션 바이너리 인터페이스를 다루는 구체적인 부분이다. 따라서, AAPCS는 EABI의 일부로 간주될 수 있다.
AAPCS가 EABI의 일부이므로, AAPCS를 따르는 코드는 EABI와 호환된다. 따라서, EABI를 준수하는 시스템에서는 AAPCS를 따르는 프로그램을 실행 할 수 있다. AAPCS는 EABI의 일부로서 이식성와 호환성을 보장하며, 개발자들이 ARM 아키텍처 기반 시스템에서 일관된 방식으로 프로그래밍을 할 수 있도록 한다.
참고 문헌
AAPCS 소개
AAPCS와 EABI의 관계
AAPCS: 데이터 타입과 정렬
AAPCS: 레지스터 사용
AAPCS: 프로세스 메모리 및 스택
AAPCS: Subroutine Calls(서브루틴 호출)