강의

멘토링

커뮤니티

BEST
Hardware

/

Embedded IoT

Structure and Principles of Arm Architecture for System Software Development - Part 1, 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) 28 reviews

404 learners

Level Basic

Course period Unlimited

  • austinkim
  • Austin Kim
ARM Architecture
ARM Architecture
cortex-a
cortex-a
Embedded
Embedded
microprocessors
microprocessors
ARM Architecture
ARM Architecture
cortex-a
cortex-a
Embedded
Embedded
microprocessors
microprocessors

Reviews from Early Learners

Reviews from Early Learners

5.0

5.0

김승현

12% enrolled

I took embedded-related education from July of last year to the end of January of this year as a national education. However, I mainly studied with Raspberry Pi 4B (cortex-A72), and since it skipped over the theoretical part and focused only on practical training, I had no idea what it was all about. Maybe that's why I failed every interview because I lacked basic knowledge and couldn't answer. I started taking this lecture because I was frustrated all the time not knowing exactly what ARM architecture is or what a register is, but I just wish I had taken this lecture sooner. I will listen to this lecture diligently and grow, hoping that I will listen to it as quickly as possible and grow to the point where I can answer perfectly by the next interview. Thank you.

5.0

토끼야놀자

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.

5.0

다울이

55% enrolled

I am currently reviewing a Micom Hang after a HardFault, and after taking this course, my eyes are wide open. I listened to the course day and night for about 3 days. Thanks to this course, it was very helpful, and it is very helpful in saving and analyzing the register values when a Hang occurs. Thank you so much for the great course.

What you will gain after the course

  • Introduction to Arm Processors

  • How to Learn Arm Architecture

  • Register

  • Assembly instruction

  • Armv7: Operating Modes

  • Armv8: Exception Levels

The fundamentals of system software basics,
the core of the latest Arm architecture!

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. Latest Course Renewal in 2024

I've discovered useful content on the latest Arm architecture features that can be directly applied to real-world projects, and have added the following lectures.

  • TRACE32 Program Debugging Content: You can download the educational TRACE32 simulator program from the 'Inflearn Course Materials'. You can directly use the TRACE32 simulator program to follow along with the debugging process (including assembly instructions) explained in the lectures.
  • Added Debugging Practice Lectures: Register Practice (50 min), Assembly Instructions (60 min), Operating Modes and Exception Levels (60 min)

The course will continue to be renewed.

2. Complete Arm Architecture Author-Led Lecture Roadmap

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

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


System semiconductors, automotive industry, etc.
Arm architecture that
system software developers must know.

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 in demand in the system software industry is Armv8-A architecture.

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


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

Junior developers who want to build their capabilities in system software fields including system semiconductors and electric vehicle sectors (autonomous driving, infotainment)

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

University students aiming for graduate school in the system software field (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. Recently emerging system semiconductor and electric vehicle system software developers 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 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 Arm architecture registers and assembly instructions, as well as operating modes and exception levels.
  • 2️⃣ By re-experiencing the key components of Arm architecture at the code level, your understanding of Arm architecture will be significantly enhanced.
  • 3️⃣ By actively utilizing the various features supported by the 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. 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.


TRACE32 simulator program (for educational purposes) provided

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

If you take this course, you can download the educational TRACE32 simulator program from the 'Inflearn Course Materials' and use the TRACE32 simulator program directly to follow along and debug the debugging processes (including assembly instructions) explained in the lectures. The related debugging lectures 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)

You can also follow along with debugging related to operation modes and exception levels.


Taught by the author! Even content not in the book
is explained in detail.

The book "Structure and Principles of Arm Architecture" not only covers its content but also provides detailed explanations of debugging practices and various cases related to 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

Main Lecture Content

Introduces Arm processors and Arm architecture along with the system semiconductor development process. Explains the profiles and families of Arm processors.

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

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

The registers defined in the Armv8-A architecture are explained in an easy-to-understand and detailed manner.

Debug registers using the TRACE32 program. Explains in detail the operating principles of registers by directly modifying the values of registers defined in the Armv7-A and Armv8-A architectures. Of course, it is explained so that students can follow along and debug themselves.

The text to translate appears to be empty. Based on the surrounding context provided, here are the translations of the "Before" and "After" sections: **Before:** We explain the operating principles of registers in detail by directly changing the values of defined registers. Of course, we explain it so that students can follow along and debug themselves. **After:** We explain the basic structure of assembly instructions and each assembly instruction in detail. We don't just stop at explaining the syntax of assembly instructions, but the assembly instructions... However, since the `` section is empty, there is nothing to translate. Please provide the Korean text you'd like translated.


I explain the basic structure of assembly instructions and describe each assembly instruction in detail.

The explanation doesn't stop at just the syntax of assembly instructions, but provides detailed explanations of how assembly instructions are actually used in real projects.

We explain by directly debugging assembly instructions using the TRACE32 program. From arithmetic instructions (examples: MOV, ADD, SUB) to branch instructions, bit operation instructions, and logical instructions (AND, ORR, EOR), we explain so that students can follow along and debug.

I notice that the `` tags are empty - there is no Korean text between them to translate. The surrounding context shows: - **Before**: Explains from basic instructions (examples: MOV, ADD, SUB) to branch instructions, bit operation instructions, and logical instructions (AND, ORR, EOR) so students can follow along with debugging. - **After**: Introduces the operating modes that form the foundation of Armv7-A and explains the characteristics of each in detail. Explains what software runs in each operating mode. However, since there is no text within the `` tags to translate, I cannot provide a translation output.


We introduce the operating modes that form the foundation of Armv7-A and explain the characteristics of each in detail. We explain what software runs in each operating mode.

It 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 debug instructions that change the operating mode directly using the TRACE32 program. We will also execute instructions that trigger exceptions and explain the process of how exceptions are triggered through hands-on debugging. The explanation is provided so that students can follow along and debug together.

I'll explain through a direct debugging process how exceptions are triggered by executing the commands that trigger them. I'll explain it in a way that allows students to follow along with the debugging process together.


The concept of exception levels, one of the core features of the Armv8-A architecture, is explained in an easy and detailed manner.

We review exception levels in detail through spec document analysis and explain the software stack that runs at each exception level.

We will conduct hands-on practice reading exception levels using the TRACE32 program. We will also directly execute SVC and HVC instructions and explain the process of exception level changes through hands-on 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 comprehend the Arm specification documents.
However, this is never easy for beginners. No matter how beneficial the content may be, it is difficult to understand. This course was designed to open a path for easier access to the challenging theories of Arm architecture.


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

Unprecedented in Korea's system software field! An author who has written books on 'Arm Architecture (Armv8-A, Armv7-A)' and 'Linux Kernel' (both books selected as Outstanding Academic Books by the National Academy of Sciences of the Republic of Korea), and the first in Korea to write a book (in English) titled "Reverse Engineering Armv8-A Systems" through an international publisher (Packt), making them a global author. Above all, they are a working developer who is most knowledgeable about 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 Publishing: English) - Published in 2025
  • Author of 'Arm Architecture Structure and Principles for System Software Development' (2024 Korea Academy Outstanding Book Award)
  • Author of 'Learning Linux Kernel Structure and Principles through Debugging' (2021 Korean Academy 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 (including domestic and overseas developers) - (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.


Genuine reviews from learners


Q&A 💬

Q. Do I need to learn Arm architecture to become a system 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 need to properly understand Arm architecture-related content because there are many cases where problem-solving is only possible with this knowledge. If you don't know Arm architecture well, 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 kernel driver development, 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 take it. No special prerequisites are required to take this course. The following attitudes may be more important than prerequisites:

  • Consistent effort in attending lectures
  • Training yourself to think deeply and contemplate when encountering 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?

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

  • System software developers who want to understand how Armv8-A based Arm processors work in system semiconductors

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

  • A 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,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

165 lectures ∙ (22hr 9min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

28 reviews

5.0

28 reviews

  • aceoftop1975님의 프로필 이미지
    aceoftop1975

    Reviews 114

    Average Rating 5.0

    5

    100% enrolled

    2024/07/27/Sat 16:29 I listened to the lecture very well. Thank you for the great lecture. I signed up for all of Dong-Hyun Kim's lectures. "Unlimited course period" seems very good. I can listen to what I'm listening to now even after several years. I have one request. I would be very grateful if you could make the course period unlimited for the lectures you make in the future. Some other people's lectures have a course period of 12 months (1 year). In my case, I have some time on the weekends, but I didn't sign up because I thought I might not be able to listen to the lectures for a year. Dong-Hyun Kim's lectures are very good, and I think I might check them again later, so if you could always make the course period unlimited, I would be grateful. I think I will listen to all of Dong-Hyun Kim's lectures. Today's lecture was really good and taught me a lot. Thank you. I'm writing a review now and I'm planning to watch Part 2 of the Structure and Principles of Arm Architecture. Thank you.

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

    • 15800189355님의 프로필 이미지
      15800189355

      Reviews 4

      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!