강의

멘토링

로드맵

Inflearn brand logo image
Hardware

/

Embedded IoT

Armv8-A Architecture Overview for New Developers (Direct Lecture by the Author)

The author of "Arm Architecture: Structure and Principles for System Software Development" thoroughly covers the fundamentals of system software, focusing on the core of the latest Arm architecture (Armv8-A)!

(5.0) 1 reviews

73 learners

  • austinkim
임베디드리눅스
취업준비
이론 중심
ARM Architecture
Embedded
armv8
cpu-architecture

What you will learn!

  • Characteristics of Arm Architecture and Arm Processors

  • Processing of Registers and Assembly Instructions

  • Exception Level and Software Stack Executed at Each Exception Level

  • Types and Behavior of Exceptions

  • AAPCS (Arm Architecture Procedure Calling Standard), a convention for subroutine calls

  • The concepts of the Non-secure World and Secure World that constitute TrustZone.

  • Virtualization and the Operating Principles of Hypervisors

  • Barrier, Cache, and the Operating Principles of Virtual Memory Systems

<Notice>

Arm Architecture Full Author Direct Lecture Roadmap

This lecture <Armv8-A Architecture for New Developers (Author Direct Lecture)> is a roadmap 'Arm - basic course for system software developers' This lecture is included in .

If you want to learn Arm architecture (Armv8-A, Armv7-A) systematically, it is recommended to use the roadmap (30% discount on all lectures). For reference, the Arm architecture roadmap (all author lectures) is Basic Course and Advanced Course It consists of two parts.

System software developer
Essential Knowledge, Arm Architecture

The Arm processors used in AI semiconductors, electric vehicles (autonomous driving, infotainment), and smartphones as well as digital TVs are all Armv8-A based 64-bit Cortex-A processors (Cortex-A53, Cortex-A57, Cortex-A72, etc.). The Armv8-A architecture can be considered the most needed knowledge in the current system software industry .

Finished in 9 hours
Introduction to the Core Armv8-A Architecture


I have written a book explaining the Armv8-A architecture and have also produced over 60 hours of lectures for Inflearn.

However, it takes more than 3 months for someone who is learning Arm architecture for the first time to digest a lecture of more than 60 hours. Of course, the best way is to take the lectures step by step and learn Arm architecture systematically. However, in reality, job seekers and junior developers often have to prepare for technical interviews within 1-2 weeks . Reflecting the needs of these students, we launched a compact but essential introduction to the Armv8-A architecture .

Target students 💁‍♂

Job seekers in the system SW field who need to prepare for a technical interview related to the Armv8-A architecture in a short period of time

New and junior developers who want to quickly learn the core contents of Armv8-A

Managers in the system software field who want to manage projects by understanding the core features of Armv8-A.

Differentiating Points of the Lecture

1⃣ Summary of key features of the Armv8-A architecture that may come up in technical interviews

In the technical interview of system software developers, there is a high possibility that they will ask questions about the Armv8-A architecture. Most domestic Linux system software developers (fabless, embedded development) specify the Arm architecture as a requirement. The time to prepare for the interview is short, but it is a big burden to analyze the vast Arm specification document. If you listen to this lecture, you can quickly understand the core concepts that make up the Armv8-A architecture.

2⃣ A summary of things that new developers must know

When working on a real-world project, you need to know the Arm architecture well. If you don't know the Arm architecture when bringing up or debugging, it will be difficult to proceed with development.

The features that make up the Armv8-A architecture are vast. The related reference documentation is over 2000 pages long, and it is difficult to know which content is used in actual projects. From the perspective of a new developer, the practical features of the Armv8-A architecture that must be known are well organized.

3⃣ Introduction to various case studies

It covers the core content of the Arm architecture and how to proceed with development work in real projects. It also explains various case studies (real project issues) on how the learned content is applied to real projects. It also covers the Linux kernel and bootloader that implement the main functions of the Arm architecture.


If you successfully complete this course, you will be able to grow into an advanced systems software developer.

We wish you to upgrade your career with higher salary and position.

Learn about these things 📕

This course introduces the Arm processor while explaining the process of developing system semiconductors. It also introduces the basic functions that make up the Armv8-A architecture.

Describes the structure of registers and provides various examples of how registers are used.

Describes special registers and covers the execution flow in which they are modified.

We introduce the boot process and explain how assembly instructions are used in real-world projects. We then analyze the basic format and command routines of assembly instructions.


It analyzes assembly instructions in detail in various ways and explains the syntax of the instructions in an easy-to-understand manner.


Debug assembly instructions using TRACE32, a practical debugging program. Analyze assembly instructions and learn in detail how registers are used.

Explains the concepts of exception level and privilege level in an easy-to-understand manner.

Explains how software executes at different exception levels with various examples.

This section details how the exception level is set during booting. It explains how to check the exception level using assembly instructions.

It details the exception vector table and the execution flow through which exceptions are handled.

Interrupts are handled as a type of exception in the Armv8-A architecture. Here is a simple explanation of how IRQ interrupt exceptions are handled through various execution flows.

Describes the process by which an exception is triggered during the execution of a system call. It also describes the execution flow of an exception along with the exception vector table.

TRACE32 debugging practice details how the Arm core branches to the exception vector address when an exception is triggered.

Describes the basic core concepts and execution flow for AAPCS, which specifies how to branch to subroutines such as functions.

We'll explain how the stack is used from a software perspective and provide optimizations that can be applied directly to real-world projects.


An easy-to-understand explanation of the core concepts (non-secure world, secure world) and execution flow of TrustZone.

This explains the operating principle of Secure monitor call with TRACE32 debugging practice. It explains in detail the operation of entering EL3 when executing SMC instruction in EL1 and also analyzes in detail the operation method of exception caused in this process.

This explains the structure and virtualization functions of hypervisors, which are widely used in electric vehicle (Automotive) development.

This explains the process of entering the hypervisor from the guest OS through the hypervisor call, which is the core of the virtualization technique. It also explains the execution flow of receiving and processing an exception from the hypervisor.


This tutorial explains in detail how to enter EL2 (hypervisor) by executing HVC instructions in EL1 (guest OS) using TRACE32 debugging practice. It also explains in simple terms how exceptions that occur during this process work.

Explains the basic concepts of cache and provides an easy-to-understand explanation of the basic structure and policies of multi-level cache.


An easy-to-understand explanation of the memory model and memory barriers.

Describes the components that make up the virtual memory system and the execution flow through which virtual addresses are processed.

Based on my experience writing books and giving lectures
More in-depth and detailed than anyone else!

The author of the unprecedented 'Arm Architecture (Armv8-A, Armv7-A)' and 'Linux Kernel' books in the domestic system software field. He is also a working developer who knows the latest system software trends (electric vehicles, system semiconductors - system software) the best, and an educator who is most active in spreading knowledge in the system software field.

  • Author of 'Structure and Principles of Arm Architecture for System Software Development' ( 2024, Korean Academy of Sciences Outstanding Book Award )

  • Author of 'Learning the Structure and Principles of the Linux Kernel through Debugging' ( 2021, Korean Academy of Sciences Outstanding Book Award )

  • 'Programmers Dev Course: Linux System and Kernel Expert' Main Instructor (1st and 2nd sessions)

  • June 2022, Korea Computer Conference (KCC2022) - Tutorial presentation [Conquering the Linux Kernel using ftrace]

  • LG Electronics 'Linux Kernel' and 'Armv8 Architecture' In-house Instructor ( including domestic and overseas developers ) - (2020~2024)

I can confidently say that I am the educator who can explain the key features of the Armv8-A architecture better than anyone else in Korea.

Vivid course reviews left by students

<Structure and Principles of Arm Architecture for System Software Development - Part 1/2 Author's Lecture>

Things to note before taking the class

Player Knowledge and Notes

  • This lecture is one that can be followed without any prior knowledge .

  • Knowing the structure of operating systems and computers will help you understand the lectures.

  • In this lecture, we assume that you know the basic grammar of the C language and introduce and explain example code.

  • The TRACE32 program used in this lecture is not provided.

    If you want to download the TRACE32 educational practice program and debug assembly instructions in detail, take the author's lecture on the structure and principles of the Arm architecture for developing distributed system software - Part 1/2.

Recommended for
these people

Who is this course right for?

  • Junior developer aspiring to build expertise in system software, including system semiconductors (fabless) and the electric vehicle sector (autonomous driving, infotainment).

  • A developer from another field looking to transition their career into system software.

  • A job seeker who wants to develop system software in the fields of system semiconductors (fabless) and electric vehicles.

  • A college student aiming to pursue graduate studies in the field of system software (memory, file systems, operating systems).

  • System software developers (system semiconductors, electric vehicles) who want to know how to debug in practice using the features of the Arm architecture.

Need to know before starting?

  • Microprocessor

  • CPU

  • Embedded

  • C language

  • Operating system

  • Computer Architecture

Hello
This is

5,557

Learners

156

Reviews

85

Answers

4.9

Rating

21

Courses

글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (Arm, RISC-V 아키텍처)

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

  • 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' 책(영어) 저자, (Packt 출판사)

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

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

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

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

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

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

강의문의 : austindh.kim@gmail.com

주요 로드맵 🎯

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

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

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

Curriculum

All

71 lectures ∙ (8hr 31min)

Published: 
Last updated: 

Reviews

All

1 reviews

5.0

1 reviews

  • 김정균님의 프로필 이미지
    김정균

    Reviews 1

    Average Rating 5.0

    5

    31% enrolled

    설명이 상세하고, 어려운 주제마다 간단한 예시를 들어주는게 너무 좋습니다.

    $42.90

    austinkim's other courses

    Check out other courses by the instructor!

    Similar courses

    Explore other courses in the same field!