Guillermo Austin Kim

Sources

Posts

998 posts

[TRACE32] struct devce 정보 덤프: dpm_device_list_dump.cmm

Guillermo Austin Kim|2021년 2월 15일

아래 cmm 을 실행하면 디바이스에 존재하는 struct device 인스턴스 정보를 모두 볼 수 있습니다. ;****************************************************************************;** dpm_device_list_dump.cmm;**;** This cmm file is designed to dump all dpm_list.;**;**;****************************************************************************;**;** EDIT HISTORY FOR MODULE;**;**;** when who

[Arm프로세서] Arm 스팩 문서에서 AAPCS 확인하기

Guillermo Austin Kim|2021년 2월 13일

이번에는 Arm 스팩 문서를 보면서 AAPCS가 무엇인지 알아봅시다. [출처: Procedure Call Standard for the Arm®Architecture]3 ScopeThe AAPCS defines how subroutines can be separately written, separately compiled, and separately assembled to work together. It describes a contract between a calling routine and a called routine that defines: 위 문서에서는 AAPCS를 포괄적으로 설명하는데, C언어에서 사용되는 함수와 어셈블리 프로그램을 구성하는 레이블을 'calling routine'와

[Arm프로세서] AAPCS: 함수 호출과 관련된 진실과 오해

Guillermo Austin Kim|2021년 2월 13일

C 프로그래밍을 할 때 함수를 호출하는 코드를 자주 입력합니다. 처음 코딩할 때 '함수 호출'은 프로그래밍 언어에서 지원하는 문법으로 여기는 경우가 많습니다. 사실 C 프로그래밍 책에서 함수 호출과 관련된 내용을 설명할 때, 마치 '함수 호출'을 프로그래밍 언어에서 지원하는 것처럼 설명합니다. 아래는 이 예시들입니다. ❑ 함수를 호출할 때 인자를 전달한다. ❑ 함수 내에서 연산한 결과를 'return'이란 구문과 함께 반환한다. ❑ 함수의 실행이 끝나면 함수를 호출한 코드로 되돌아 간다. 위 내용을 읽으면, 프로그래밍을 조금이라도 해본 분들은 C 언어에서 제공하는 문법이라고 여길 겁니다. 이를 전문적으로 C 언어의 Syntax라고도 합니다. 하지만 우리가

[Arm프로세서] AAPCS(Arm Procedure Call Standard) 소개

Guillermo Austin Kim|2021년 2월 12일

많은 소프트웨어 개발자들은 함수 호출은 C 언어에서 제공하는 문법으로 여깁니다. 함수 호출은 CPU 아키텍처에 의존적이며, CPU 아키텍처의 도움을 받아야 가능한 동작입니다. Arm 코어에서 어떤 프로그램이 실행될 때, 함수 호출은 Arm 아키텍처에서 정의된 'Procedure Call Standard for the Arm Architecture'에 따라 이뤄집니다. 앞으로 업데이트될 포스트에서 간단한 예제 코드와 함께 Q/A 형식으로 질문을 던지면서 AAPCS에서 무엇을 알아야 하는지를 말씀드리고, Arm 스팩 문서에서 AACPS를 어떻게 정의하는지 설명합니다. [정보]아래 링크에 가보면 'Procedure Call Standard for the Arm Architecture'를 AAPCS로 표기한다는

[Arm프로세서] Armv8: VBAR_EL2 - Xen 하이퍼바이저의 익셉션 벡터와 익셉션 핸들러

Guillermo Austin Kim|2021년 2월 12일

이어서, Armv8 아키텍처의 EL2에서 실행되는 Xen 하이퍼바이저의 익셉션 벡터와 익셉션 핸들러 코드를 분석하겠습니다. 코드를 보기 앞서 VBAR_EL2 기준 익셉션 벡터 테이블을 보겠습니다. 표 9.21 VBAR_EL2 기준의 익셉션 벡터 테이블 위 익셉션 벡터 테이블의 항목 중 EL2 with SP_EL0에 대한 익셉션 벡터와 익셉션 핸들러 코드를 소개하겠습니다.  [중요]이번 절에서 분석한 Xen 하이퍼바이저의 익셉션 벡터 베이스 주소는 0x269800입니다. 이 기준으로 익셉션 벡터와 익셉션 핸들러를 분석합니다. 'EL2 with SP_EL0' 'EL2 with SP_EL0' 항목에 대응되는 익셉션 벡터와 익셉션 핸들러의 전체 코드는 다음과 같습니다. 0000000000269800 &lt