ARM
Posts
173 posts[ARM] ARM 프로세서를 공부하는 방법의 문제점
분야를 막론하고 새로운 IT 기술을 배울 때 공부하는 방법은 중요합니다. 가끔은 "무식하게, 시행착오를 많이 겪는 게 최고의 공부 방법이라"라고 말하는 분도 있지만, ARM 프로세서를 학습할 때는 적용할 만한 조언은 아닌 것 같습니다. 왜냐면 저의 수년간의 실전 프로젝트를 통해 다음과 같은 사실을 절감했기 때문입니다. ● ARM 프로세서는 정말로 공부하는 방법이 중요하다! ARM 프로세서를 공부하는 방법이 중요한 이유는 무엇일까요? 잘못된 방법으로 ARM 프로세서를 공부하면 배운 내용이 오랫동안 머릿 속에 남지 않기 때문입니다. 빨리 지루해집니다. 무엇보다 배운 내용을 실전 프로젝트에 활용하지 못합니다. 그래서 ARM 프로세서를 공부하다가 포기하거나 ARM 프로세서가 정말 어려운 주제라
[ARM] ARM 프로세서를 일반 SW 개발자도 배워야 하는 이유
하드웨어를 제어하는 시스템 소프트웨어 개발자들은 ARM 프로세서를 잘 배워야 한다고 말씀 드렸습니다. 그렇다면 다른 분야의 소프트웨어 개발자들도 ARM 프로세서들을 잘 알아야 할까요? 솔직히 말해, 모든 소프트웨어 개발자가 ARM 프로세서를 잘 배울 필요는 없습니다. 예전과 달리 소프트웨어 분야가 다양해졌고, 한 프로젝트에 탑재되는 소프트웨어의 계층 구조도 복잡해졌기 때문입니다. 다음은 안드로이드의 시스템 아키텍처 구성도인데, 이 그림을 보면서 설명을 더 하겠습니다. 그림: 안드로이드 소프트웨어 계층 그림의 윗 부분부터 보면 "Application" - "Application Framework" - "Libraries" - "Linux Kernel" 이란 계층이 보입니다. "Application"
[ARM] ARMv8(Aarch64) 아키텍처 기반 프로젝트가 대세인가?
ARMv8 아키텍처는 64비트로 구성된 명령어를 지원하고 최신 ARM 코어 기술들을 지원합니다. 최근에 출시된 모바일 폰은 거의 대부분 ARMv8(Aarch64: 64비트 명령어) 아키텍처 기반의 ARM 프로세서를 탑재하고 있습니다. 그래서 대부분 ARMv8(Aarch64) 프로세서를 대부분 IT 기기에서 적용한다고 생각했습니다. 하지만 이건 저만의 착각이었습니다. 여러 임베디드 개발자분들과 교류한 후 다음과 같은 사실을 깨닫게 됐습니다. * ARMv7 아키텍처(32비트 명령어) ARM 프로세서를 많이 사용하고 있다. ARM 프로세서의 가격 그렇다면 32비트 기반 ARM 프로세서(Cortex-A9, Cortex-M3)를 채택하는 이유는 무엇일까요? * 바로 가격 때문입니다. 모바
[ARM] 전원을 키면 처음에 어디서 무엇을 실행할까[1]: PC 레지스터
분야를 막론하고 C 언어나 파이썬으로 컴퓨터 프로그래밍을 하다보면 다음과 같은 의문점이 생깁니다. * 바로 컴퓨터의 전원 버튼을 누르면 가장 먼저 무엇을 실행할까? * 이 때 실행되는 어셈블리 명령어는 무엇일까? * 이 명령어는 메모리의 어느 위치에 있을까? 이런 의문을 해소하려면 먼저 ARM 코어 내부에 있는 레지스터 중에 PC라고 부르는 프로그램 카운터 레지스터에 대해 이해할 필요가 있습니다. PC(프로그램 카운터) 레지스터란 PC(프로그램 카운터 레지스터)의 역할은 무엇일까요? 실행할 명령어를 읽을 때 사용되며 PC는 ARM 코어가 실행할 명령어가 있는 위치를 저장합니다. 그런데 이름과 역할이 약간 다른 것 같습니다. PC라는 용어는 프로그램 카운터라고 부른다고 말씀드렸는데, "프



