강의

멘토링

커뮤니티

BEST
Hardware

/

Embedded IoT

Structure and Principles of Arm Architecture for System Software Development - Part 1 Author's Direct Lecture (2024 Version)

The author of "Arm Architecture: Structure and Principles for System Software Development" will properly guide you through the very foundation of system software and the core of the latest Arm architecture (Armv8-A, Armv7-A)!

(5.0) 25 reviews

389 learners

저자 직강
이론 중심
arm-architecture
ARM Architecture
cortex-a
Embedded
microprocessors

Reviews from Early Learners

What you will gain after the course

  • Arm Processor Introduction

  • Arm Architecture Learning Method

  • Register

  • Assembly instruction

  • Armv7: Operating Mode

  • Armv8: Exception Level

System software fundamentals of fundamentals,
the core of the latest Arm architecture!

0. 30% discount coupon issued for breaking 300 students milestone

To commemorate reaching 300 students (Parts 1 & 2), we are issuing a 30% discount coupon. Thank you. Limited to the first 100 people.

  • Coupon link: https://inf.run/NspbX

1. 2024 Latest Course Renewal

We've discovered the latest Arm architecture features and valuable content that can be directly applied to real-world projects, and have added the following courses.

  • TRACE32 Program Debugging Content: You can download the educational TRACE32 simulator program from the 'Inflearn lecture materials'. You can directly use the TRACE32 simulator program to follow along with the debugging process (including assembly instructions) explained in the lecture and perform debugging yourself.
  • Added debugging practice lectures: Register practice (50 minutes), Assembly instructions (60 minutes), Operation modes and exception levels (60 minutes)

The course will continue to be renewed.

2. Complete Author's Direct Lecture Roadmap for Arm Architecture

This lecture is included in the roadmap'Arm for System Software Developers - basic course'.

For those who want to systematically learn Arm architecture (Armv8-A, Armv7-A), it would be good to utilize the roadmap (30% discount on all courses). For reference, the Arm architecture roadmap (complete author-taught courses) consists of two parts: Basic Course and Advanced Course.


System semiconductors, automotive field, etc.
If you're a system software developer,
you must know the Arm architecture.

Not only smartphones, but also AI SoC system semiconductors, electric vehicle Automotive (autonomous driving, infotainment), and Arm processors used in cloud servers and MacBooks are all Armv8-A based 64-bit Cortex-A processors (Cortex-A53, Cortex-A57, Cortex-A72, etc...). Currently, the content that requires the most essential foundational knowledge in the system software industry can be considered the Armv8-A architecture.

However, did the latest Arm architectures, Armv8-A and Armv7-A, feel too difficult to you?.


Attention System Software Developers and Embedded System (BSP) Programmers!

System semiconductors, system software fields including electric vehicle areas (autonomous driving, infotainment) where junior developers want to build their capabilities

Job seekers who want to develop system software in fields such as system semiconductors and electric vehicles

University student aiming for graduate school admission in the field of system software (memory, file systems, operating systems)

Developers from other fields who want to transition their career to the systems software field

Many aspiring Linux embedded developers learn computer architecture and operating systems. They also study CS theory to some extent. Developers of system semiconductors and electric vehicle system software, which are emerging recently, analyze Linux device drivers, RTOS, or bootloaders. However, they feel that this alone is somehow insufficient. They know that understanding Arm architecture is essential to become a professional system software developer, but the moment they open the Arm specification documents, they realize it's not an easy path and that self-study would be difficult.


We explain the core of Arm architecture
in an easy-to-understand way!

  • 1️⃣ You can understand core theories such as registers and assembly instructions of Arm architecture, as well as operating modes and exception levels.
  • 2️⃣ By re-experiencing the key components that make up the Arm architecture at the code level, your understanding of the Arm architecture will become much deeper.
  • 3️⃣ By actively utilizing the various features supported by Arm architecture, you can develop system programs (drivers, bootloaders) that guarantee high stability and performance.
  • 4️⃣Through hands-on practice with the TRACE32 debugging program, you can directly debug assembly instructions and related functions. You can understand on your own the various theories and cases needed for real-world project development.

It's no exaggeration to say that the core of system software development is CPU and computer architecture. We've made it easy to understand the core theories of the latest Arm architecture (Armv8-A, Armv7-A), which are the CPU processors most needed in the IT industry!

The reason Arm architecture is difficult is because Arm architecture is only learned from a hardware processor perspective. This course explains how the components that make up Arm architecture are actually used through code analysis and concrete case studies. This course will play a pivotal role in helping you become a skilled system software developer.


TRACE32 simulator program (educational) provided

What's the shortcut to learning Arm architecture? It's practicing by debugging directly hands-on.

When you take this course, you can download the educational TRACE32 simulator program from 'Inflearn Course Materials' and directly use the TRACE32 simulator program to follow along and debug the debugging processes (including assembly instructions) explained in the course. The related debugging courses in the curriculum are as follows:

  • TRACE32 - Register Practice (2024 version)
  • TRACE32 - Operation Mode Debugging Practice (2024 version)
  • TRACE32 - Assembly Instruction Debugging Practice (2024 version)
  • TRACE32 - Exception Level Debugging Practice (2024 version)

Additionally, you can also follow along with debugging related to operation modes and exception levels.


Direct instruction from the author! Even content not in the book
is explained in detail.

This book "Structure and Principles of Arm Architecture" not only covers the content but also provides concrete explanations of debugging practices and various cases related to Arm architecture that are not covered in the book.

  • ✅ 40%: Core content of the book
  • ✅ 40%: Major case studies and code reviews related to Arm architecture
  • ✅ 20%: Debugging Practice - TRACE32

Main Course Content

This course introduces the Arm processor and Arm architecture along with the process of developing system semiconductors. It explains the profiles and families of Arm processors.

This introduces the registers of the Armv7-A architecture and explains the characteristics of each.

This covers banked registers among the general-purpose registers (Armv7-A) in detail. It provides a detailed explanation of the major fields that make up the CPSR register, which contains process state information.

This provides an easy-to-understand and detailed explanation of the registers defined in the Armv8-A architecture.

We debug registers using the TRACE32 program. We explain the operating principles of registers in detail by directly changing the values of registers defined in the Armv7-A and Armv8-A architectures. Of course, we explain it so that students can follow along and debug directly themselves.


Explains the basic structure of assembly instructions and describes each assembly instruction in detail.

It goes beyond just explaining the grammar of assembly instructions and provides detailed explanations of how assembly instructions are actually utilized in real projects.

This course explains assembly instructions through direct debugging using the TRACE32 program. It covers everything from arithmetic instructions (examples: MOV, ADD, SUB) to branch instructions, bit operation instructions, and logical instructions (AND, ORR, EOR), with explanations that allow students to follow along with the debugging process.


This introduces the operating modes that form the foundation of Armv7-A and provides detailed explanations of each mode's characteristics. It explains what software runs in each operating mode.

This explains the privilege levels related to operating modes and provides a detailed analysis of the CPSR register's bit fields that indicate the operating mode.

We will directly debug the commands that change the operating mode using the TRACE32 program. We will also directly execute commands that trigger exceptions and explain the process of how exceptions are triggered through direct debugging. We will explain it so that students can follow along and debug together.


This provides an easy and detailed explanation of the concept of exception levels, one of the core features of the Armv8-A architecture.

Through specification document analysis, we provide a detailed review of exception levels and explain the software stack that executes at each exception level.

We will conduct a hands-on exercise to read exception levels using the TRACE32 program. We will also directly execute SVC and HVC instructions to explain the process of exception level changes through direct debugging. Students can download the TRACE32 program and follow along with the debugging exercises.


The shortcut to understanding how Arm processors work is to directly read and understand the Arm specification documents.
This is never easy for beginners. No matter how beneficial the content may be, it's difficult to understand. This course was designed to open a path for easier access to the difficult theories of Arm architecture.


Based on book writing/lecture experience
Deeper and more detailed than anyone else!

In the domestic system software field, this is an unprecedented! author who wrote books on 'Arm Architecture (Armv8-A, Armv7-A)' and 'Linux Kernel' (both books were selected as excellent books by the Korean Academy), and is a global author who was the first in Korea to write the book "Reverse Engineering Armv8-A Systems" (in English) through an overseas publisher (Packt). Above all, they are a working developer who best understands the latest system software trends (electric vehicles, system semiconductors - system software). They are also an educator who is most actively engaged in knowledge dissemination activities in the system software field.

  • Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis (Packt Publisher: English) - Published in 2025
  • 'Structure and Principles of Arm Architecture for System Software Development' (2024 Korea Academy Outstanding Book Award) Author
  • 'Learning Linux Kernel Structure and Principles Through Debugging' (2021 Korea Academy Outstanding Book Award) Author
  • 'Programmers Dev Course: Linux System and Kernel Expert' Main Instructor
  • June 2022, Korea Computer Congress (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 an educator who can explain the key features that make up the Arm architecture (Armv8-A, Armv7-A) better than anyone else in Korea.


Vivid course reviews left by learners


Q&A 💬

Q. Do I need to learn Arm architecture to become a systems software developer?

Yes, you absolutely must learn it. The Arm processor is the most widely used CPU in the IT industry. System software developers who program hardware control often need to properly understand Arm architecture-related content to solve problems. If you don't know Arm architecture well, there's a chance you'll only be able to do simple system configuration tasks.

Q. I'm not from a computer science background - can I learn Arm architecture?

Even non-majors can fully understand the basic principles of Arm architecture if they listen carefully to the content of this lecture. Among the beta readers of the book 'Structure and Principles of Arm Architecture for System Software Development', there were many non-majors. Initially, it was difficult to immediately understand the content about Arm architecture upon first reading, but after reading the book 2-3 times, most understood Arm architecture. Since this lecture explains the book's content in more detail and specificity, if you take this lecture, even non-majors will be able to understand Arm architecture well.

Q. Do I need to take this course to become a security software developer?

If you want to develop software like V3, theoretical knowledge of CPU architecture is essential. After transitioning to kernel driver development, you must understand CPU architectures like Arm architecture. To learn the core of various attack/defense techniques including reversing, it's difficult to even attempt without knowing the theory of Arm architecture.

Q. I've only studied C language and data structures. Can I still take this course?

Yes, you can take it. No special prerequisite knowledge is required to take this course. The following attitudes may be more important than prerequisite knowledge.

  • The effort to consistently listen to lectures
  • Training to contemplate and think when hearing unfamiliar content
  • The habit of consistent review

However, if you already have knowledge about operating systems or RTOS, it can be helpful in understanding this course.

Recommended for
these people

Who is this course right for?

  • Junior developer who wants to develop capabilities in the system software field, including system semiconductors (fabless) and electric vehicle fields (autonomous driving, infotainment)

  • Developer from another field seeking system software career.

  • A job seeker who wants to develop system software in the system semiconductor (fabless) and electric vehicle fields.

  • Undergraduate student aiming for graduate studies in system software (memory, file system, operating system)

  • System software developer (system semiconductor, electric vehicle) interested in practical debugging methods leveraging Arm architecture features.

  • A system software developer who wants to know how Armv8-A-based Arm processors operate in system semiconductors

  • A graduating student preparing a graduation project on an Arm-based system.

  • Graduate student working on a lab project in an Arm processor environment

Need to know before starting?

  • Computer Architecture

  • Operating System

Hello
This is

6,020

Learners

201

Reviews

89

Answers

4.9

Rating

22

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

165 lectures ∙ (22hr 9min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

25 reviews

5.0

25 reviews

  • rousalome6394님의 프로필 이미지
    rousalome6394

    Reviews 4

    Average Rating 5.0

    5

    31% enrolled

    After listening to the lecture, my head feels clearer and something feels like it has lifted. It is amazing that the main concepts of ARM, which had been vague until then, have been clearly organized. I was a little surprised at how much I have changed after listening to the lecture. Every time I read the ARM spec, it felt new, but now I can read the ARM spec document fluently. I also recommended it to my fellow developers because the content was immediately applicable to my project. I am glad to have listened to the life lecture and I hope more lectures are uploaded. Thank you so much for the great and informative lecture.

    • austinkim
      Instructor

      Thank you for your good evaluation and encouragement. If you have any questions, please leave them in Q/A at any time. I will continue to do my best to make sure that you "really listened to my lectures" in the future.

  • mikeseohyungjin5975님의 프로필 이미지
    mikeseohyungjin5975

    Reviews 4

    Average Rating 5.0

    5

    7% enrolled

    Starting from ARM history, ARM instructions, registers, exception levels, I am grateful for the very detailed and in-depth explanation of the essential basics of understanding ARM architecture! I have never seen a book with this kind of content, at least in Korea. I would like to recommend this book to anyone who is working on Linux kernel-related projects or is interested in ARM!

    • austinkim
      Instructor

      Thank you for your good evaluation and encouragement. If you have any questions, please leave them in Q/A at any time. I will continue to do my best to make sure that you "really listened to my lectures" in the future.

  • grapesgun0624님의 프로필 이미지
    grapesgun0624

    Reviews 4

    Average Rating 5.0

    5

    100% enrolled

    By learning ARM architecture through practical examples such as TRACE32, Linux kernel source, and XEN hypervisor source, the theories stayed in my head longer and I was able to watch the lectures with interest. I want to watch the third lecture soon, and I hope that there will be a practical lecture that covers not only theories but also actual programming. Thank you for the great lecture.

    • austinkim
      Instructor

      Thank you for your good evaluation. I expect it will be very helpful for practical work, especially since it contains many practical examples that can be used in various fields of system software. I plan to produce a lecture that proceeds with practical work later. Please note that the third lecture will be published in early January. Thank you. ^^

  • kfcwee9463님의 프로필 이미지
    kfcwee9463

    Reviews 8

    Average Rating 5.0

    5

    100% enrolled

    • cms15751340님의 프로필 이미지
      cms15751340

      Reviews 2

      Average Rating 5.0

      5

      100% enrolled

      $102.30

      austinkim's other courses

      Check out other courses by the instructor!

      Similar courses

      Explore other courses in the same field!