[ARM] 함수 호출 규약(Calling Convention)이란
By Guillermo Austin Kim | 2020년 9월 27일 |
호출 규약(Calling Convention)이란 무엇일까요? 어떤 함수를 호출했을 때 서브 루틴이 자신을 호출하는 함수로부터 인자를 어떤 방식으로 받아 결과를 반환하는지에 대한 규약입니다. x86, RISC-V와 같은 CPU 아키텍처마다 함수 호출 규약(Calling Convention)을 정의하는데, ARM 프로세서에서는 이를 AAPCS(Procedure Call Standard for ARM Architecture)라고 명시합니다. 앞으로, AAPCS를 함수 호출 규약이라고 명시하겠습니다. 연산을 수행하는 ARM 어셈블리 명령어에서 레지스터는 연산의 결과를 임시로 저장하는 역할에 그칩니다. 그래서 각각 레지스터의 역할을 세세하게 배울 필요가 없는데요. 함수 호출 규약을 배울 때는 다릅니다. 그것은 다
[Arm프로세서][Armv7] 트러스트존(TrustZone): 시큐어 상태와 Secure Control Register(SCR)
By Guillermo Austin Kim | 2021년 12월 29일 |
트러스트존 아키텍처에서 논 시큐어 월드와 시큐어 월드를 기준으로 트러스트존의 주요 개념을 설명합니다. 그런데 Arm 아키텍처의 스팩 문서를 살펴보면 시큐어 상태와 논 시큐어 상태라는 용어를 만나게 됩니다. 시큐어 상태와 논 시큐어 상태는 시큐어 월드와 논 시큐어 월드와 거의 유사한 개념인데, 트러스트존의 구현 레벨에서 쓰이는 용어입니다. 먼저 시큐어 상태와 논 시큐어 상태에 대해 알아봅시다. 어떤 코드가 실행 중인데 현재 코드가 논 시큐어 월드 혹은 시큐어 월드에서 실행 중인지 어떻게 알 수 있을까요? Armv7 아키텍처에서는 이 정보를 저장하는 레지스터를 설계했는데 이를 Secure Control Register(SCR) 레지스터라고 합니다. 이번에는 Arm 스팩 문서를 보면서 Secure Cont
MS의 접는 태블릿폰, 서피스 안드로메다가 나온다?
By 자그니 블로그 : 거리로 나가자, 키스를 하자 | 2018년 7월 2일 |
![MS의 접는 태블릿폰, 서피스 안드로메다가 나온다?](https://img.zoomtrend.com/2018/07/02/a0001544_5b3a521d31c91.jpg)
얼핏 들으면 정신이 안드로메다로 날아가버릴 것 같은(?) 소식이 나왔습니다. MS에서 새로운 모바일 기기를 내놓는다는 겁니다. 프로젝트명은 안드로메다. 닌텐도DS를 닮은 접는 태블릿 + 폰입니다. 내부에서 유출된 이메일에 담긴 내용이라는데요. 사실 사람들이 관심을 가지게 된 것은 디자이너 David Breyer가 트위터에, 자신이 렌더링한 서피스 안도르메다를 선보였기 때문입니다. 눈 앞에 보이는 디자인은 어떤 말보다 강력하거든요. 생긴 것은 정말 닌텐도 DS를 크게 키운게 아닌가-싶지만, 이에 대한 소문은 예전부터 있었습니다. 작년말 MS가 얻었다는 특허가 대표적이죠. 윈도우10 코어 위에서 돌아가는 모바일용 OS '안드로메다'에 대한 소식도 이미 작년에 들려왔죠.
[라즈베리파이] 시스템 콜 - ARM 프로세서 관점 시스템 콜 처리
By Guillermo Austin Kim | 2018년 11월 6일 |
리눅스 시스템에서 시스템 콜을 어떻게 구현했는지 코드를 따라가면 어셈블리 코드를 만나게 됩니다.보통 어셈블리 코드는 ARM 프로세서 입장에서 실행하는 동작을 구현하는 경우가 많습니다. 어셈블리 코드로 구현되어 있다는 것은 시스템 콜이 아키텍처(ARM, x86) 동작과 연관이 있다는 의미입니다. 라즈베리파이는 ARM 아키텍처에서 구동하므로 ARM(Aarch32, ARM 32비트) 프로세서 기준으로 시스템콜이 어떻게 동작하는지 알아봅시다. ARM 프로세서 입장에서 시스템콜 동작을 더 자세히 알아보려면 ARM 프로세스 모드에 대해 살펴볼 필요가 있습니다. ARM 프로세서는 Supervisor, FIQ, IRQ, ABORT, UNDEF, USER, 6가지 모드를 지원하며 각 모드 별 레지스터 세트를 저장하고 있습