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

The author of "The Structure and Principles of Arm Architecture for System Software Development" will help you master the core of the latest Arm architectures (Armv8-A, Armv7-A), the absolute fundamentals of system software!

(5.0) 17 reviews

272 learners

Level Basic

Course period Unlimited

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 the Arm architecture (Armv8-A, Armv7-A).

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

  • You can gain a good understanding of the AAPCS defined in Armv7-A/Armv8-A.

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

📢 Notice Before Taking the Course

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

<Notice>

0. 30% discount coupon issued to celebrate exceeding 300 students

To celebrate surpassing 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 have added the following lectures by discovering the latest Arm architecture features and useful content that can be directly applied to real-world projects. (3 hours and 30 minutes added)

  • TRACE32 Program Debugging Content: You can download the educational TRACE32 simulator program from the 'Inflearn Course Materials'. You can use the TRACE32 simulator program yourself to follow along with the debugging process (including assembly instructions) explained in the lecture.

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

  • Memory Dump: 3 cases provided for exception debugging

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

2. Roadmap for the Entire Arm Architecture Lecture Series by the Author

This lecture, <Structure and Principles of Arm Architecture for System Software Development - Part 2 Taught by the Author>, is included in the roadmap 'Arm for System Software Developers - basic course'.


If you wish to learn the Arm architecture (Armv8-A, Armv7-A) systematically, it is recommended to take advantage of the roadmap (30% discount on all lectures). For your reference, the Arm Architecture Roadmap (full lectures by the author) consists of two parts: Basic Course and Advanced Course..


In modern system software,
the most important Arm architecture

Arm processors used in smartphones, AI SoC system semiconductors, 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.). It can be said that the Armv8-A architecture is the foundational knowledge most required in the current system software industry.

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


Attention System Software Developers and Embedded System (BSP) Programmers! 🙋‍♂

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

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

Prospective graduate students in the field of system software (memory, file systems, operating systems) trong lĩnh vực phần mềm hệ thống (bộ nhớ, hệ thống tệp, hệ điều hành)

Developers from other fields who want to switch their career to the system software field sang lĩnh vực phần mềm hệ thống

Many who aspire to be Linux embedded developers study computer architecture or operating systems. They also study CS theory to some extent. Developers in the rising fields of system semiconductors and electric vehicle system software analyze Linux device drivers, RTOS, or bootloaders. However, they often feel for themselves that that alone is not enough. While they know they must understand the Arm architecture to become professional system software developers, the moment they open the Arm specification documents, they realize it is a challenging path and judge that self-study will be difficult.

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

  • 1⃣ You can understand the core theories of Exceptions and the AAPCS (Procedure Call Standard for the Arm Architecture), which are the absolute essentials 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 reach a much higher level.

  • 3⃣ By actively utilizing the various features supported by the Arm architecture, you can develop system programs (drivers, bootloaders) that ensure high stability and performance.

  • 4⃣ You can independently understand various theories and cases required for practical project development.

It is no exaggeration to say that the core of system software development lies in CPU and computer architecture. We have provided easy-to-understand explanations of the core theories regarding the latest Arm architectures (Armv8-A, Armv7-A), which are the most sought-after CPU processors in the IT industry!

The reason Arm architecture is difficult is that it is often taught solely from a hardware processor perspective. This course explains how the components of the Arm architecture are actually used through code analysis and specific case studies. This course will play a pivotal role in helping you become a skilled system software developer.

Taught by the author! Detailed explanations including
content not found in the book.

In addition to the contents of the book 『Structure and Principles of the Arm Architecture』 (Selected as a 2024 National Academy of Sciences Outstanding Book), it provides detailed explanations of debugging practices and various cases related to the Arm architecture that are not covered in the book.

  • ✅ 40%: Core content of the book

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

  • ✅ 20%: Debugging Practice - TRACE32

Lecture Content 📕

It introduces what an exception is in CPU architecture and explains the basic operation of exceptions while reviewing the Arm specifications.

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

It explains the exception execution flow of the Armv7 architecture step-by-step and provides a detailed analysis of how exceptions are handled via software.

It explains in detail the operation of how memory aborts—either Prefetch or Data Abort—are handled in the Armv7 architecture. It also describes the execution flow for processing IRQ interrupt exceptions.

Explains the execution flow of the Supervisor Call (Software Interrupt) exception triggered when the SVC instruction is executed in the Armv7 architecture. It summarizes the overall execution flow of the exception.

Explains in detail the big picture of how actual Data Abort and Undefined Instruction exceptions are triggered.

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 big picture of the execution flow for how interrupts are processed at each stage in the Armv8 architecture. It describes the registers updated and the exception handlers involved in this process.

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

Explain the overall structure of the GIC with a big-picture view and describe the key features of each GIC version.

It explains the interrupt sources and types defined in the GIC, as well as how interrupts are handled in SMP (Symmetric Multi-Processing) systems.

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

It explains the structure of the Distributor and the system registers used to control it. It also explains the structure of the CPU interface and the system registers used to control the CPU interface.

Explains the core concepts of IRQ and FIQ and provides a detailed explanation of the execution flow.

Explains the GIC handler routines (Linux kernel, XEN hypervisor) that control the GIC via software.

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

Armv7-A Architecture: Explains in detail the operation of the PUSH and POP instructions, which are core elements of AAPCS.

Armv7-A Architecture: Explains the execution flow of the BL instruction, a core part of AAPCS, and related assembly instructions in detail.

Armv8-A Architecture: Explains in detail the operation of the STP instruction, which is the core of AAPCS, and the operation of the BL assembly.

Armv8-A: Introduces how to solve problems in real-world projects using knowledge related to AAPCS. Explains in detail the skills to prevent stack overflow and stack corruption.



The shortcut to understanding the principles of Arm is
reading and understanding the spec documents yourself!

Arm is by no means easy for beginners. No matter how beneficial the content is, it is difficult to understand. This course was designed to pave the way for you to approach difficult Arm architecture theories more easily. 


Based on book writing and lecturing experience,
deeper and more detailed than anyone else!


I am the author of 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, Republic of Korea), and a global author who wrote the book "Reverse Engineering Armv8-A Systems" (in English) through an overseas publisher (Packt) for the first time in Korea. Above all, I am a working developer who is most well-versed in the latest system software trends (electric vehicles, system semiconductors-system software). I am also an educator who is most actively engaged in spreading knowledge in the field of system software.

  • Author of the book (English) 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis', (Packt Publishing) - 2025 (tiếng Anh), (Nhà xuất bản Packt) - Năm 2025

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

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

  • 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~2024)


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

Vivid course reviews left by learners

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


Q&A 💬

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

Yes, you must learn it. Arm processors are the most widely used CPUs in the IT industry. This is because system software developers, who program to control hardware, often need a proper understanding of the Arm architecture to solve problems. If you don't know the Arm architecture well, there is a high probability that you will only be doing simple system configuration tasks.

Q. I am a non-major; can I still learn the Arm architecture?

Even if you are a non-major, you can sufficiently understand the basic principles of the Arm architecture if you follow the contents of this lecture carefully. 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 understand the contents of the Arm architecture immediately upon first reading, most of them understood the Arm architecture after reading the book two or three times. Since this lecture explains the contents of the book in more detail and specificity, if you take this lecture, even a non-major will be able to understand the 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, theory on CPU architecture is essential. After transitioning to a kernel driver developer, you must know CPU architectures such as the Arm architecture. To learn the core of various attack/defense techniques, including reversing, it is difficult to even attempt without knowing the theory of the Arm architecture.

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

Yes, you can take it. In addition to this, knowing about operating systems or RTOS can help you learn the course more quickly. However, this course provides step-by-step guidance so that you can follow along without difficulty even if you don't have prior knowledge.

The following attitudes are more important than prior knowledge.

  • The effort to listen to the lectures consistently

  • Training to ponder and think deeply when encountering unfamiliar content

  • The habit of reviewing consistently

Recommended for
these people

Who is this course right for?

  • A junior developer who wants to build expertise in the system software field, including system semiconductors (fabless) and the electric vehicle sector (autonomous driving, infotainment).

  • A developer from another field seeking 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.

  • An undergraduate 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 learn how to debug in practice by leveraging the features of the Arm architecture.

Need to know before starting?

  • Computer Architecture

  • Operating System

  • C language

  • Embedded

  • CPU

  • Microprocessor

Hello
This is austinkim

6,316

Learners

241

Reviews

96

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

More

Co-instructor

Curriculum

All

130 lectures ∙ (20hr 37min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

17 reviews

5.0

17 reviews

  • grapesgun0624님의 프로필 이미지
    grapesgun0624

    Reviews 5

    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.

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

  • jazzpiano85181275님의 프로필 이미지
    jazzpiano85181275

    Reviews 4

    Average Rating 5.0

    5

    60% enrolled

    Thank you so much for explaining difficult concepts in an easy-to-understand way and for making the effort to help the learner remember by repeating the important parts!

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

    • 16267551265님의 프로필 이미지
      16267551265

      Reviews 10

      Average Rating 4.9

      5

      30% enrolled

      austinkim's other courses

      Check out other courses by the instructor!

      Similar courses

      Explore other courses in the same field!

      $102.30