Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
BEST
Hardware

/

Embedded IoT

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

The very fundamentals of system software, the core of the latest Arm architectures (Armv8-A, Armv7-A) – the author of "시스템 소프트웨어 개발을 위한 Arm 아키텍처의 구조와 원리" will properly explain them!

(5.0) 11 reviews

232 learners

저자 직강
이론 중심
armv8
armv7
Hardware Hacking
Embedded
ARM Architecture
cpu-architecture
cortex-a

Reviews from Early Learners

What you will learn!

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

  • You can deeply understand the detailed exception mechanisms in Arm architecture (Armv8-A, Armv7-A).

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

  • You can understand how to debug Memory Abort issues utilizing Exception and AAPCS.

📢 Information before taking the class

This lecture is the second lecture following the first lecture on the structure and principles of the Arm architecture for system software development . For a smooth understanding, we recommend taking the lectures sequentially from the first lecture.

<Notice>

0. 30% discount coupon issued when 300 students enroll

To celebrate reaching 300 students (Part 1 and 2), we are issuing a 30% discount coupon. Thank you. First 100 people.

  • Coupon: 18268-977830e246a0

1. Latest lecture renewal in 2024

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

  • TRACE32 Program Debugging Content : You can download the educational TRACE32 simulator program from 'Inflearn lecture materials'. You can directly debug by following the debugging process (including assembly commands) explained in the lecture using the TRACE32 simulator program.

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

  • Memory dumps : Provides 3 cases for debugging exceptions

We will continue to discover content that will be helpful to our students and update the curriculum.

2. Arm Architecture Full Author Direct Lecture Roadmap

This lecture <Structure and Principles of Arm Architecture for System Software Development - Part 2 Author's 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.


In the latest system software
The most important Arm architecture

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

But, did you find the latest Arm architectures, Armv8-A and Armv7-A, too difficult ?


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

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

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

Applicants for graduate school in the field of system software (memory, file system, operating system)

Developers from other fields who want to transition their careers to systems software

Many Linux embedded developers learn computer architecture and operating systems. They also study CS theory to some extent. Recently, rising system semiconductor and electric vehicle system software developers analyze Linux device drivers, RTOS, or bootloaders. However, they feel that something is lacking . They know that they must know the Arm architecture to become a professional system software developer, but when they actually open the Arm specification document, they decide that it is not an easy path and that self-study is difficult.

The core of the Arm architecture
Let me explain it to you in an easy-to-understand way!

  • 1⃣ You can understand the core theory of exceptions and AAPCS, which is the core of the Arm architecture.

  • 2⃣ You will experience the main contents of the Arm architecture again at the code level, and your level of understanding of the Arm architecture will increase significantly.

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

  • 4⃣ You can independently understand various theories and cases required for developing practical projects.

It is no exaggeration to say that the core of system software development is CPU and computer architecture. We have easily explained the core theory of the latest Arm architecture (Armv8-A, Armv7-A) , the most needed CPU processor in the IT industry!

The reason why Arm architecture is difficult is because it is learned only from the perspective of the hardware processor. This lecture explains how the contents of the Arm architecture are actually used through code analysis and specific case introduction. This lecture will play a pivotal role in helping you become a capable system software developer.

Direct lecture from the author! Even the contents that are not in the book
Let me explain in detail.

In addition to the contents of the book 『Structure and Principles of Arm Architecture』 ( selected for the 2024 Korean Academy of Sciences and Technology Excellence Book Award ) , it specifically explains debugging practices and various cases of 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 📕

Introduces what exceptions are in CPU architectures and explains the basic behavior of exceptions while reviewing the Arm specification.

Explains in detail why you need to know exceptions in the Arm architecture for real-world projects.

We will explain the exception execution flow of the Armv7 architecture step by step and analyze in detail how exceptions are handled by software.

Describes in detail how Memory Abort - Prefetch or Data Abort is handled in the Armv7 architecture. Describes the execution flow for handling IRQ interrupt exceptions.

Describes the execution flow of a supervisor call (software interrupt) exception that occurs when executing an SVC instruction on the Armv7 architecture. Summarizes the entire execution flow of the exception.

It provides a detailed, big picture explanation of the behavior that actually causes Data Abort and Undefined Instruction exceptions.

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

Describes the flow of handling Synchronous exceptions in the Armv8 architecture.

Provides a high-level overview of the execution flow for each stage of interrupt processing in the Armv8 architecture. It describes the registers and exception handlers that are updated during this process.

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

It provides a big picture explanation of the overall structure of GIC and explains the main functions of each version of GIC.

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

We describe the programmer model of GIC designed from a software development perspective and explain the physical structure of GIC.

Describes the structure of the distributor and the system registers used to control the distributor. Describes 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 explains the execution flow in detail.

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

Introduces the function calling conventions and key features that make up the AAPCS in CPU architectures.

Armv7-A Architecture: Describes in detail how the PUSH and POP instructions, which are the core of AAPCS, work.

Armv7-A Architecture: Describes in detail the execution flow of the BL instruction, which is the core of AAPCS, and related assembly instructions.

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

Armv8-A: How to use your knowledge of AAPCS to solve problems in real-world projects. Detailed description of skills to prevent stack overflow and stack pollution.



A shortcut to understanding the principles of Arm is
Read and understand the spec document yourself!

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


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


Unparalleled in the domestic system software field! Author of 'Arm Architecture (Armv8-A, Armv7-A)' and 'Linux Kernel' ( both books selected as excellent books by the Korean Academy of Sciences ) and global author who wrote the book "Reverse Engineering Armv8-A Systems" (English) through a foreign publisher (Packt) for the first time in Korea . Above all, he is a working developer who knows the latest system software trends (electric vehicles, system semiconductors - system software) the best. He is also an educator who is most active in knowledge dissemination in the field of system software.

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

  • 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

  • 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 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. Is it necessary to learn the Arm architecture to become a system software developer?

Yes, you should definitely learn it. The most widely used CPU in the IT industry is the Arm processor. System software developers who program to control hardware often need to have a good understanding of the Arm architecture to solve problems. If you don't know the Arm architecture well, you'll likely only be able to do simple system configuration work.

Q. I am not a major. Can I learn Arm architecture?

Even non-majors can fully understand the basic principles of the Arm architecture by listening to 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. At first, it was difficult to read and understand the contents of the Arm architecture right away, but after reading the book 2-3 times, most of them understood the Arm architecture. This lecture explains the contents of the book in more detail and specifically, so even non-majors will be able to understand the Arm architecture well by listening to this lecture .

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

If you want to develop software like V3, the theory of CPU architecture is essential. After moving to kernel driver developer, you must know CPU architecture such as Arm architecture. If you want to learn the core of various attack/defense techniques including reversing, it is difficult to even try without knowing the theory of Arm architecture.

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

Yes, you can. In addition, if you know about operating systems or RTOS, it can help you learn the lecture quickly. However, this lecture guides you step by step so that you can take the lecture without any prior knowledge.

More important than player knowledge is the following attitude:

  • Effort to attend lectures consistently

  • Training to think and ponder when hearing something you don't know well

  • The habit of constant review

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 the electric vehicle sector (autonomous driving, infotainment).

  • A developer from a different field looking to transition into system software.

  • Aspiring system software developer for system semiconductors (fabless) and electric vehicles.

  • University student aiming for graduate school in system software field (memory, file system, operating system)

  • System software developers (system semiconductors, electric vehicles) keen on understanding practical debugging utilizing Arm architecture features.

Need to know before starting?

  • Computer Architecture

  • Operating System

  • C language

  • embedded

  • CPU

  • Microprocessor

Hello
This is

5,426

Learners

148

Reviews

84

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

130 lectures ∙ (20hr 37min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

11 reviews

5.0

11 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 3

    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.

  • dlrbcnvk님의 프로필 이미지
    dlrbcnvk

    Reviews 17

    Average Rating 4.9

    5

    100% enrolled

    • woo12346560311님의 프로필 이미지
      woo12346560311

      Reviews 5

      Average Rating 5.0

      5

      60% enrolled

      $102.30

      austinkim's other courses

      Check out other courses by the instructor!

      Similar courses

      Explore other courses in the same field!