강의

멘토링

커뮤니티

BEST
Hardware

/

Embedded IoT

Structure and Principles of Arm Architecture for System Software Development - Part 2, Taught by the Author (2024 Version)

The fundamentals of system software, the core of the latest Arm architecture (Armv8-A, Armv7-A) properly explained by the author of "Structure and Principles of Arm Architecture for System Software Development"!

(5.0) 16 reviews

268 learners

Level Basic

Course period Unlimited

  • austinkim
  • Austin Kim
Hardware Hacking
Hardware Hacking
Embedded
Embedded
ARM Architecture
ARM Architecture
cpu-architecture
cpu-architecture
cortex-a
cortex-a
Hardware Hacking
Hardware Hacking
Embedded
Embedded
ARM Architecture
ARM Architecture
cpu-architecture
cpu-architecture
cortex-a
cortex-a

Reviews from Early Learners

Reviews from Early Learners

5.0

5.0

ym0914

5% enrolled

I am receiving a lot of help in my field because you explain difficult topics such as exceptions, interrupts, and calling conventions in an easy-to-understand manner. I think this is essential information to know when solving problems in the field.

5.0

토끼야놀자

82% enrolled

Rather than simply instilling theory, the instructor gave practical kernel code examples of the theory applied and cases he experienced in the field, so I was able to understand it well and the knowledge stayed in my head for a long time. Thank you for your efforts to create many embedded developers through good lectures.

5.0

간절한개발자

51% enrolled

As a system software developer, I had to learn about ARM processors, so I looked at the specs and googled them. I didn't understand the unfamiliar terms, and ARM processors were so difficult that I gave up learning several times. However, after listening to this lecture, I felt like I had discovered a completely different world. The explanations were easy to understand, so I understood all the terms and flow that I didn't know, and the parts that I was stuck on were sorted out. I highly recommend this lecture to developers who want to learn ARM!

What you will gain after the course

  • You can understand the basic operating principles of Arm architecture (Armv8-A, Armv7-A).

  • You can gain an in-depth understanding of the detailed operational principles of exceptions in Arm architecture (Armv8-A, Armv7-A).

  • You can understand the AAPCS defined in Armv7-A/Armv8-A well.

  • You can understand how to debug memory abort issues using exceptions and AAPCS.

📢 Notice Before Taking the Course

This course is the second course following Arm Architecture Structure and Principles for System Software Development Part 1. For smooth understanding, we recommend taking the courses sequentially starting from the first course

0. 30% Discount Coupon Issued for Reaching 300 Students

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

1. 2024 Latest Course Renewal

I've discovered useful content on the latest Arm architecture features that can be directly applied to real-world projects and added the following lectures. (3 hours 30 minutes added)

  • 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.

  • Debugging Practice Lectures: Armv7-A Exception (35 min), Armv8-A Exception (2 hours), AAPCS (60 min)

  • Memory dumps: 3 provided for exception debugging

We plan to continuously discover helpful content for students and update the curriculum.

2. Complete Arm Architecture Author-Led Course Roadmap

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


If you want to learn Arm architecture (Armv8-A, Armv7-A) systematically, it's recommended to use the roadmap (30% discount on all courses). For reference, the Arm architecture roadmap (complete author-led courses) consists of 2 options: Basic Course and Advanced Course.


The most important Arm architecture
in modern system software

The Arm processors used in smartphones, AI SoCs, electric vehicle Automotive (autonomous driving, infotainment), cloud servers, and MacBooks are all Armv8-A based 64-bit Cortex-A processors (Cortex-A53, Cortex-A57, Cortex-A72, etc.). Currently, the foundational knowledge most needed in the system software industry can be said to be Armv8-A architecture.

However, does the latest Arm architecture, Armv8-A and Armv7-A architecture, feel too difficult to you?


System software developers and embedded systems (BSP) programmers, pay attention!🙋‍♂

Junior developers in the system software field, including system semiconductors and electric vehicle sectors (autonomous driving, infotainment)

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

Those hoping to pursue graduate studies in system software fields (memory, file systems, operating systems)

Developers from other fields looking to transition their career into system software

Many aspiring Linux embedded developers study computer architecture and operating systems. They also study CS theory to some extent. System semiconductor and electric vehicle system software developers, which are emerging fields recently, analyze Linux device drivers, RTOS, or bootloaders. However, they feel on their own that this alone is somehow insufficient. They know that understanding Arm architecture is essential to becoming a professional system software developer, but the moment they open the Arm specification document, 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 the core theory of exceptions and AAPCS (Arm Architecture Procedure Call Standard), which are the most essential parts of the Arm architecture.

  • 2⃣ By re-experiencing the key components of the Arm architecture at the code level, your understanding of the Arm architecture will be significantly enhanced.

  • 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⃣ You can independently understand 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. This course provides an easy-to-understand explanation of the core theories of the latest Arm architecture (Armv8-A, Armv7-A), the CPU processor most in demand in the IT industry!

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

Taught by the author! Includes detailed explanations
of content not found in the book.

This course covers not only the content from the book "Structure and Principles of Arm Architecture" (Selected as an Outstanding Academic Book by the National Academy of Sciences of the Republic of Korea in 2024), but also provides detailed explanations of debugging practices and various case studies on Arm architecture that are not covered in the book.

  • ✅ 40%: Core content from the book

  • ✅ 40%: Key case studies and code reviews related to Arm architecture

  • ✅ 20%: Debugging Practice - TRACE32

Course Content 📕

This section introduces what exceptions are in CPU architecture and explains the basic operation of exceptions while reviewing the Arm specification.

It explains in detail why you need to understand Arm architecture exceptions in real-world projects.

Explains step-by-step the exception execution flow in Armv7 architecture and provides detailed analysis of how exceptions are handled in software.

Provides a detailed explanation of how memory aborts - Prefetch or Data Abort - are handled in the Armv7 architecture. Explains the execution flow for processing IRQ interrupt exceptions.

Explains the execution flow of the Supervisor Call (software interrupt) exception that is triggered when executing the SVC instruction in the Armv7 architecture. Summarizes the overall execution flow of exceptions.

Explains in detail with a big picture view the actual operations that trigger Data Abort and Undefined Instruction exceptions.

Introduces the characteristics of exceptions defined in the Armv8 architecture. Explains the types and classification system of Armv8 architecture exceptions.

Explains the flow of how Synchronous exceptions are handled in the Armv8 architecture.

Explains the execution flow of how interrupts are processed at each stage in the Armv8 architecture from a big picture perspective. Describes the registers that are updated during this process and the exception handlers.

Introduces the interrupt controller and explains the overall structure of the GIC.

Explains the overall structure of the GIC with a big picture and describes the key features of each GIC version.

It explains the interrupt sources and types defined in GIC and describes how interrupts are handled in SMP (multi-core systems).

This explains the GIC programmer's model designed from a software development perspective, and describes the physical structure of the GIC.

Explains the structure of the distributor and the system registers used to control the distributor. Explains the structure of the CPU interface and the system registers used to control the CPU interface.

This explains the core concepts of IRQ and FIQ and provides detailed explanations of their execution flow.

This section explains the GIC handler routines (Linux kernel, XEN hypervisor) that control the GIC through software.

Introduces the function calling convention in CPU architecture and the key features that make up AAPCS.

Armv7-A Architecture: Provides detailed explanations of how the PUSH and POP instructions, which are core to AAPCS, operate.

Armv7-A Architecture: Provides a detailed explanation of the execution flow of the BL instruction, which is core to AAPCS, and related assembly instructions.

Armv8-A Architecture: Provides a detailed explanation of how the STP instruction, which is core to AAPCS, works and how BL assembly operates.

Armv8-A: Introduces methods to solve problems in real-world projects by applying knowledge related to AAPCS. Provides detailed explanations of skills to prevent stack overflow and stack corruption.



The shortcut to understanding Arm principles is
to read and understand the specification documents directly!

For beginners, Arm is never easy. No matter how useful the content is, it's difficult to understand. This course was designed to open a path for you to more easily approach the difficult Arm architecture theory.


Based on book writing/teaching experience
More in-depth and detailed than anyone else!


Unprecedented in Korea's system software field! Author of books on 'Arm Architecture (Armv8-A, Armv7-A)' and 'Linux Kernel' (both books selected as excellent publications by the National Academy of Sciences of the Republic of Korea), and the first in Korea to write the book (in English) "Reverse Engineering Armv8-A Systems" through an overseas publisher (Packt), making them a global author. 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 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' book (English) author, (Packt Publishing) - 2025

  • Author of 'Structure and Principles of Arm Architecture for System Software Development' (2024 Korea Academy Award for Outstanding Books)

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

  • Main instructor for 'Programmers Dev Course: Linux System and Kernel Expert'

  • June 2022, Korea Computer Congress (KCC2022) - Tutorial Presentation [Mastering the Linux Kernel Using ftrace]

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


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

Authentic reviews from learners


Q&A 💬

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

Yes, it is essential to learn. Arm processors are the most widely used CPUs in the IT industry. System software developers who program hardware control often need to properly understand Arm architecture-related content to solve problems. Without a good understanding of Arm architecture, there's a high probability you'll only be able to perform simple system configuration tasks.

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

Even non-majors can fully understand the basic principles of Arm architecture if they listen carefully to this course. Among the beta readers of the book 'Structure and Principles of Arm Architecture for System Software Development,' there were many non-majors. Although it was difficult to read and immediately understand the content about Arm architecture at first, most understood Arm architecture after reading the book 2-3 times. Since this course explains the book's content in more detail and more specifically, if you take this course, 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 moving on to become a kernel driver developer, you must know 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. Additionally, if you have knowledge about operating systems or RTOS, it can help you learn the course more quickly. However, this course is designed to guide you step by step so that you can take it without difficulty even if you don't have prerequisite knowledge.

The following attitude is more important than prerequisite knowledge.

  • The effort to consistently attend lectures

  • The practice of pondering and thinking when encountering unfamiliar content

  • The habit of consistently reviewing

Recommended for
these people

Who is this course right for?

  • A junior developer who wants to build capabilities in system software fields including system semiconductors (fabless) and electric vehicle areas (autonomous driving, infotainment)

  • Developers from other fields looking to transition their career into systems software

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

  • An undergraduate student aiming for graduate school in the field of systems software (memory, file systems, operating systems)

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

Need to know before starting?

  • Computer Architecture

  • Operating System

  • C language

  • Embedded

  • CPU

  • Microprocessor

Hello
This is

6,220

Learners

233

Reviews

93

Answers

4.9

Rating

22

Courses

Global Author & Linux System Software Developer (Arm, RISC-V Architecture)

A global author who has written unprecedented books on 'Arm Architecture (Armv8-A, Armv7-A)' and the 'Linux Kernel' in the domestic system software field (both books were selected as Excellent Academic Books by the National Academy of Sciences of the Republic of Korea), and is the first in Korea to author the book (in English) "Reverse Engineering Armv8-A Systems" through an international publisher (Packt). Above all, he is an active developer who is most well-versed in the latest system software trends (electric vehicles, system semiconductors-system software). He is also an educator who is most actively engaged in spreading knowledge within the system software field.

  • Author of the book (English) 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis', (Packt Publishing)

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

  • Author of 'Structure and Principles of the Linux Kernel Learned Through Debugging' (2021, National Academy of Sciences Outstanding Scholarly Book Award)

  • Main Instructor for 'Programmers Dev Course: Linux System and Kernel Expert'

  • June 2022, Korea Computer Congress (KCC2022) - Tutorial Presentation [Conquering the Linux Kernel Using ftrace]

  • LG Electronics 'Linux Kernel' and 'Armv8 Architecture' internal instructor (including domestic and overseas developers) - (2020–Present)

I can confidently say that I am an educator who can explain the Linux kernel and Arm architecture (Armv8-A, Armv7-A) better than anyone else in Korea.

Lecture Inquiries: austindh.kim@gmail.com

Main Roadmap 🎯

'Arm for System Software Developers - basic course'

'Arm for System Software Developers - advanced course'

Linux kernel for system software developers - basic course

Curriculum

All

130 lectures ∙ (20hr 37min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

16 reviews

5.0

16 reviews

  • rousalome6394님의 프로필 이미지
    rousalome6394

    Reviews 4

    Average Rating 5.0

    5

    51% enrolled

    As a system software developer, I had to learn about ARM processors, so I looked at the specs and googled them. I didn't understand the unfamiliar terms, and ARM processors were so difficult that I gave up learning several times. However, after listening to this lecture, I felt like I had discovered a completely different world. The explanations were easy to understand, so I understood all the terms and flow that I didn't know, and the parts that I was stuck on were sorted out. I highly recommend this lecture to developers who want to learn ARM!

    • austinkim
      Instructor

      Thank you for your good review. If you have any questions, please leave them in Q/A at any time.

  • mikeseohyungjin5975님의 프로필 이미지
    mikeseohyungjin5975

    Reviews 4

    Average Rating 5.0

    5

    5% enrolled

    1. I was impressed by the incredibly deep knowledge of ARM architecture. 2. The ARM specs are very difficult and complicated, but I learned them by looking at the Linux kernel code as it is in the lecture, so I understood them well. Overall, I felt the affection for developers, which was good. I highly recommend it.

    • 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

    82% enrolled

    Rather than simply instilling theory, the instructor gave practical kernel code examples of the theory applied and cases he experienced in the field, so I was able to understand it well and the knowledge stayed in my head for a long time. Thank you for your efforts to create many embedded developers through good lectures.

    • austinkim
      Instructor

      Thank you for your good review. 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.

  • 16267551265님의 프로필 이미지
    16267551265

    Reviews 10

    Average Rating 4.9

    5

    30% enrolled

    • yerinjeon9731님의 프로필 이미지
      yerinjeon9731

      Reviews 2

      Average Rating 5.0

      5

      30% enrolled

      $102.30

      austinkim's other courses

      Check out other courses by the instructor!

      Similar courses

      Explore other courses in the same field!