채널톡 아이콘
NEW

신입 개발자를 위한 Armv7-A Architecture Overview (저자 직강)

시스템 소프트웨어의 기본 중의 기본, 최신 Arm 아키텍처(Armv7-A)의 핵심을 "시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리"의 저자가 제대로 잡아드립니다!

Thumbnail

입문자를 위해 준비한
[임베디드 · IoT, ARM Architecture] 강의입니다.

이런 걸 배울 수 있어요

  • Arm 아키텍처와 Arm 프로세서의 특징

  • 레지스터와 어셈블리 명령어의 처리 방식

  • 익셉션 레벨(Exception)과 프로세서 모드 별로 실행되는 소프트웨어 스택

  • 익셉션(Exception)의 종류와 동작 방식

  • 서브 루틴 호출을 위한 규약인 AAPCS (Arm 호출 규약)

  • TrustZone을 구성하는 논시큐어 월드와 시큐어 월드의 개념

  • 배리어, 캐시 그리고 가상 메모리 시스템의 동작 원리

<공지>

Arm 아키텍처 전체 저자 직강 강의 로드맵

이번 강의 <신입 개발자를 위한 Armv7-A Architecture (저자 직강)>는 로드맵 '시스템 소프트웨어 개발자를 위한 Arm - basic course' 에 포함된 강의입니다.

체계적으로 Arm 아키텍처(Armv8-A, Armv7-A)을 배우시려는 분은 로드맵(전체 강의 30% 할인)을 활용하시면 좋습니다. 참고로 Arm 아키텍처 로드맵(저자 직강 전체)은 Basic Course Advanced Course 2가지로 구성되어 있습니다.

최신 시스템 소프트웨어에서
가장 중요한 Arm 아키텍처

데스크탑 컴퓨터를 제외한 대부분의 디바이스에서 실행되는 CPU는 Arm 프로세서입니다. 그 동안 임베디드 개발자에게 Arm 아키텍처는 반드시 배워야 하는 주제였습니다. 인기 있는 Arm 아키텍처를 크게 나누면 Armv7-A와 Armv8-A 아키텍처로 분류할 수 있습니다. 이 중에서 32비트 기반(Armv7-A)의 Arm 프로세서(Cortex-A9, Cortex-A15)은 아직도 많은 다양한 제품군(디지틀 TV, IoT 기기, 전기자동차-자율주행, 텔레메틱스)에서 사용되고 있습니다.

Armv7 아키텍처를 처음 배운다면?

Arm 아키텍처를 처음 배우는 학습자라면, 방대한 분량에 부담을 느낄 수 있습니다. 또한 취업 준비생이나 주니어 개발자라면 1~2 주 이내로 빠르게 기술 면접을 준비해야 하는 경우가 많습니다. 이번 강의는 Arm 아키텍처 입문자가 단기간에 핵심 개념을 익힐 수 있도록 최적의 커리큘럼을 구성했습니다.

물론, Arm 아키텍처를 체계적으로 배우려면 깊이 있는 학습 과정이 중요합니다. 실제로, 제가 집필한 <Arm 아키텍처의 구조와 원리>와 아래의 풀코스 강의(총 60시간 분량)는 많은 수강생들의 선택을 받아왔습니다.

🔹 체계적으로 배우고 싶은 분들이라면, 아래 강의에 주목하세요!

대상 수강생 💁‍♂

다음과 같은 예상 수강생 분들을 위해서 이번 강의 - Armv7-A 아키텍처 Overview 강의를 제작했습니다.

빠른 시간에 Armv7-A 아키텍처와 관련된 기술면접을 대비해야 하는 시스템SW분야 취준생

Armv7-A의 핵심적인 내용을 파악해서 실무를 빨리 익히고 싶은 신입 및 주니어 개발자

Armv7-A의 핵심적인 기능을 이해하고 프로젝트를 관리하려는 시스템 소프트웨어 관리자

강의의 차별 포인트

1⃣ 기술 면접에서 나올 수 있는 Armv7-A 아키텍처의 핵심 기능을 요약 정리

시스템 소프트웨어 개발자의 기술 면접에서 Armv7-A 아키텍처에 대한 질문할 가능성이 매우 높습니다. 대부분 국내 리눅스 시스템 소프트웨어 개발자(펩리스, 임베디드 개발)의 요구 조건으로 Arm 아키텍처를 명시하고 있습니다. 면접을 준비할 시간은 짧은데, 방대한 Arm 스펙 문서를 분석하기에는 큰 부담이 됩니다. 이번 강의를 들으면 Armv7-A 아키텍처를 구성하는 핵심 개념을 빠른 시간 내에 파악할 수 있습니다.

2⃣ 현업 개발에서 반드시 알아야 할 내용을 정리

현업 프로젝트를 진행하면 Arm 아키텍처를 잘 알아야 합니다. 브링업을 하거나 디버깅을 할 때 Arm 아키텍처를 모르면 개발을 진행하기 어렵습니다.

Armv7-A 아키텍처를 구성하는 기능은 방대합니다. 관련 레퍼런스 문서는 1000 페이지가 넘고, 어떤 내용이 현업 프로젝트에서 활용되는지 알기 어렵습니다. 신입 개발자 관점에서 반드시 알아야 Armv7-A 아키텍처의 실용적인 기능을 잘 정리했습니다.

3⃣ 다양한 케이스 스터디 소개

Arm 아키텍처의 핵심 내용을 설명하면서 실전 프로젝트에서 어떤 방식으로 개발 업무를 진행하는지 다룹니다. 또한 배운 내용이 어떻게 현업 프로젝트에 활용되는지에 대해 다양한 케이스 스터디(실전 프로젝트 이슈)도 설명합니다. 또한 Arm 아키텍처의 주요 기능이 구현된 리눅스 커널이나 부트로더에 대해서도 다룹니다.


이번 강의를 잘 소화하시면 고급 시스템 소프트웨어 개발자로 성장하실 수 있습니다.

더 높은 연봉과 포지션에서 커리어를 업그레이드하시길 응원합니다.

이런 내용을 배워요 📕

시스템 반도체를 개발하는 과정을 설명하면서 Arm 프로세서에 대해 소개합니다. 또한 Armv7-A 아키텍처를 구성하는 기본적인 기능에 대해서 소개합니다.

레지스터의 구조를 설명하고, Armv7-A 아키텍처에서 레지스터가 어떻게 구성됐는지 구체적으로 알기 쉽게 설명합니다.

Armv7-A 아키텍처를 구성하는 레지스터 중에서 핵심인, CPSR 레지스터와 SPSRs 레지스터에 대해서 세세하게 다룹니다. 각각 레지스터를 구성하는 필드를 알기 쉽게 설명합니다.

TRACE32 프로그램으로 실습 하면서 범용 레지스터의 기본 구조를 알기 쉽게 설명합니다.

CPSR 레지스터의 값과 프로세서 모드의 관계를 TRACE32 디버깅을 통해 구체적으로 설명합니다.

어셈블리 명령어를 잘 알아야 하는 이유를 다양한 예시(부트로더)와 함께 설명합니다. 또한 어셈블리 명령어가 실전 프로젝트에서 어떻게 활용되는지 설명합니다.

Armv7-A 아키텍처에서 정의된 어셈블리 명령어의 기본 포멧과 예제 명령어 루틴을 분석합니다.

다양한 방식으로 어셈블리 명령어를 상세하게 분석하고, 각각 어셈블리 명령어의 동작 방식을 알기 쉽게 설명합니다.

TRACE32 프로그램으로 직접 디버깅하면서 어셈블리 명령어의 동작 방식을 상세하게 설명합니다.

Armv7-A 아키텍처의 핵심 중 핵심인 프로세서 모드를 소개합니다. 프로세서 모드와 연관된 Privilege Level의 개념을 구체적이고 알기 쉽게 설명합니다.

Armv7-A에서 지원하는 각각 프로세서 모드의 특징을 설명하고 User 모드에 대해서 다룹니다. User 모드에서 실제 어떤 소프트웨어가 실행되는지 구체적으로 설명합니다.

RTOS나 리눅스 커널이 실행되는 Supervisor 모드에 대해서 상세하게 설명합니다. 실전 프로젝트에서 Supervisor가 어떻게 활용되는지 구체적으로 설명합니다.

익셉션의 기본 동작 원리를 설명하고, Armv7-A에서 정의된 익셉션 벡터 테이블을 리뷰합니다.

Armv7-A 에서 처리되는 익셉션의 처리 방식을 단계 별로 상세하게 설명합니다.

실제 익셉션이 소프트웨어적으로 어떤 방식으로 처리되는지 상세하게 분석합니다. 관련 어셈블리 명령어와 익셉션 벡터 테이블을 상세하게 설명합니다.

IRQ 인터럽트 익셉션이 Armv7-A 에서 어떤 방식으로 처리되는지, 소프트웨어 관점으로 설명합니다.

TRACE32 프로그램으로 디버깅 실습을 통해, SVC 명령어를 실행하면 어떤 방식으로 익셉션이 유발되는지 알기 쉽게 설명합니다.

Undefined Instruction 익셉션을 직접 TRACE32 프로그램으로 실습하면서, 익셉션의 동작 원리를 구체적으로 설명합니다.

함수와 같은 서브 루틴으로 분기하는 규약인 AAPCS(Arm Procedure Call Standard)를 왜 배워야 하는지 소개합니다. 또한 기본 동작 원리를 알기 쉽게 설명합니다.

AAPCS와 관련된 레지스터를 소개합니다. 함수에 전달되는 아규먼트와 리턴값이 어느 레지스터를 사용해 저장되는지 설명합니다.

BL, B, BLX 명령어를 직접 TRACE32 프로그램으로 실습하면서, AAPCS의 동작 원리를 알기 쉽게 설명합니다.

TrustZone의 핵심 개념(논시큐어 월드, 시큐어 월드)과 실행 흐름에 대해서 이해하기 쉽게 설명합니다.

TrustZone의 핵심인 SMC 명령어의 동작 방식을 상세히 설명합니다.

메모리 모델의 기본 개념과 노멀 메모리가 무엇인지에 대해 알기 쉽게 설명합니다.


메모리 리오더링의 개념과 Armv7-A에서 제공하는 메모리 배리어에 대해서 상세하게 설명합니다.

가상 메모리 시스템을 구성하는 요소와 가상 주소가 처리되는 실행 흐름을 설명합니다.

책 집필/강의경력을 바탕으로
누구보다 깊고 상세하게!

국내 시스템 소프트웨어 분야에서 전무후무한! 'Arm 아키텍처(Armv8-A, Armv7-A)'와 '리눅스 커널' 책을 쓴 저자입니다. 또한 최신 시스템 소프트웨어 트렌드(전기자동차, 시스템 반도체- 시스템 소프트웨어)를 가장 잘 알고 있는 현업 개발자이자, 시스템 소프트웨어 분야에서 가장 지식 전파 활동을 활발하게 하는 교육자입니다. 

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리' (2024년, 대한민국 학술원 우수도서상) 저자

  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사(1~2 차수)


  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~2024년) 

국내에서 어느 누구보다 Armv7-A 아키텍처를 이루는 주요 기능을 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다.

학습자들이 남긴 생생한 수강평

<시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1/2부 저자 직강>

수강 전 참고 사항

선수 지식 및 유의사항

  • 이번 강의는 선수 지식이 없어도 무난하게 따라올 수 있는 강의입니다.

  • 운영체제나 컴퓨터에 대한 구조를 알고 있으면 강의를 이해하는데 도움이 됩니다.

  • 강의에서 C 언어의 기본 문법은 알고 있다고 가정하고 예제 코드를 소개하고 설명합니다.

  • 이번 강의에서 진행(디버깅 실습)하는 TRACE32 프로그램은 제공하지 않습니다.

    TRACE32 교육용 실습 프로그램을 내려 받으셔서 상세하게 어셈블리 명령어를 디버깅하시려면, 이미 배포된 시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리 - 1부/2부 저자 직강 강의를 수강하세요.

이런 분들께
추천드려요!

학습 대상은
누구일까요?

  • 시스템 반도체(펩리스), 전기 자동차 분야(자율주행, 인포테인먼트)를 포함한 시스템 소프트웨어 분야에서 역량을 키우고 싶은 주니어 개발자

  • 시스템 소프트웨어 분야로 커리어를 전환하려는 다른 분야의 개발자

  • Arm 아키텍처의 기능을 활용해 실무에서 어떻게 디버깅하는지 알고 싶은 시스템 소프트웨어 개발자(시스템 반도체, 전기 자동차)

  • 시스템 소프트웨어 분야(메모리, 파일 시스템, 운영체제)의 대학원 진학을 목표로 하는 대학생

  • 시스템 반도체(펩리스), 전기 자동차 분야에서 시스템 소프트웨어 개발을 하고 싶은 취준생

선수 지식,
필요할까요?

  • 마이크로프로세서

  • CPU

  • 임베디드

  • c언어

  • 운영체제

  • 컴퓨터구조

안녕하세요
김동현 (Austin Kim)입니다.

4,293

수강생

79

수강평

74

답변

4.9

강의 평점

18

강의

국내 시스템 소프트웨어 분야에서 전무후무한! 'Arm 아키텍처(Armv8-A, Armv7-A)'와 '리눅스 커널' 책을 쓴 저자(2권의 책 모두 대한민국 학술원 우수도서에 선정)이며, 최신 시스템 소프트웨어 트렌드(전기자동차, 시스템 반도체- 시스템 소프트웨어)를 가장 잘 알고 있는 현업 개발자입니다. 또한 시스템 소프트웨어 분야에서 가장 지식 전파 활동을 활발하게 하는 교육자입니다. 

  • '시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리'(2024년, 대한민국 학술원 우수도서상) 저자

  • '디버깅을 통해 배우는 리눅스 커널의 구조와 원리' (2021년, 대한민국 학술원 우수도서상) 저자

  • '프로그래머스 데브 코스: 리눅스 시스템 및 커널 전문가' 메인 강사

  • 2022년 6월, 한국컴퓨터종합학술대회 (KCC2022) - 튜토리얼 발표 [ftrace를 이용해 리눅스 커널 정복하기]

  • LG전자 '리눅스 커널' 및 'Armv8 아키텍처' 사내 강사(국내 및 해외 개발자 포함) - (2020년~현재)

국내에서 어느 누구보다 리눅스 커널과 Arm 아키텍처(Armv8-A, Armv7-A)를 잘 설명할 수 있는 교육자라고 자신있게 말씀드릴 수 있습니다.

주요 로드맵 🎯

'시스템 소프트웨어 개발자를 위한 Arm - basic course'

'시스템 소프트웨어 개발자를 위한 Arm - advanced course'

 

시스템 소프트웨어 개발자를 위한 Linux kernel - basic course

체계적으로 Arm 아키텍처(Armv8-A, Armv7-A)와 리눅스 커널을 배우시려는 분은 로드맵(전체 강의 30% 할인)을 활용하시면 좋습니다.

더보기

커리큘럼

전체

75개 ∙ (9시간 17분)

강의 게시일: 
마지막 업데이트일: 

수강평

아직 충분한 평가를 받지 못한 강의입니다.
모두에게 도움이 되는 수강평의 주인공이 되어주세요!

연관 로드맵

강의가 포함된 로드맵으로 학습해 보세요!

₩38,500

30%

₩55,000