강의

멘토링

커뮤니티

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) 13 reviews

252 learners

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

Reviews from Early Learners

What you will gain after the course

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

📢 Pre-Course Information

This lecture is the second lecture 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 lecture

0. 30% Discount Coupon Issued for Breaking 300 Students

To commemorate 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

We've added the following courses after discovering beneficial content featuring the latest Arm architecture capabilities that can be directly applied to real-world projects. (3 hours 30 minutes added)

  • TRACE32 Program Debugging Content: You can download the educational TRACE32 simulator program from '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 debug it yourself.

  • Debugging Practice Lecture: 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 content that helps our students and update the curriculum accordingly.

2. Complete Arm Architecture Author's Direct Lecture Roadmap

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


For those who want to learn Arm architecture (Armv8-A, Armv7-A) systematically, it would be good to utilize the roadmap (30% discount on all courses). For reference, the Arm architecture roadmap (complete author-taught courses) isBasic Course andAdvanced CourseIt consists of 2 components.


In the latest system software
The most important 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 foundational knowledge needed 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?


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

✅ System software fields including system semiconductors and electric vehicle sectors (autonomous driving, infotainment) for junior developers

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

Graduate school applicants in the field of system software (memory, file systems, operating systems)

Developers from other fields looking to transition their career to the system software field

Many aspiring Linux embedded developers study computer architecture and operating systems. They also study CS theory to some extent. Developers of system semiconductor 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 self-study would be difficult.

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

  • 1⃣ You can understand the core theory of exceptions and the function calling convention AAPCS, which are at the heart of Arm architecture.

  • 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⃣ You can understand various theories and case studies needed for practical project development on your own.

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.

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

The book "Structure and Principles of Arm Architecture" (Selected as 2024 Korea Academy Outstanding Book Award) not only covers the content but also provides concrete explanations of Arm architecture debugging practices and various cases 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

Course Content 📕

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

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

Explains the exception execution flow of the Armv7 architecture step by step and analyzes in detail the method of handling exceptions through software.

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.

This explains the execution flow of the supervisor call (software interrupt) exception triggered when executing the SVC instruction in the Armv7 architecture. It summarizes the complete execution flow of the exception.

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

This introduces the characteristics of exceptions defined in the Armv8 architecture. It explains the types and classification system of Armv8 architecture exceptions.

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

This explains the execution flow of interrupt handling at each stage in the Armv8 architecture from a big picture perspective. It 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 GIC from a big picture perspective and describes the major features of each GIC version.

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

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

This explains the structure of the distributor and the system registers used to control the distributor. It 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 detailed explanations of their execution flow.

This explains the GIC handler routine (Linux kernel, XEN hypervisor) that controls the GIC through software.

Introducing the main features that make up function calling conventions and AAPCS in CPU architecture.

Armv7-A Architecture: Detailed explanation of the operation methods of PUSH and POP instructions, which are core components of AAPCS.

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

Armv8-A Architecture: Detailed explanation of the operation of the STP instruction, which is core to AAPCS, and the operation of BL assembly.

Armv8-A: Introduces methods for solving problems in real-world projects by utilizing knowledge related to AAPCS. Provides detailed explanations of skills that can prevent stack overflow and stack corruption.



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

For beginners, Arm is never easy. No matter how beneficial the content is, it's difficult to understand. This course was designed to pave the way for easier access to the challenging Arm architecture theory.


Based on book writing/teaching 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 current industry 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' book (English) author, (Packt Publishing) - 2025

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

  • '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 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 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 of Arm architecture upon reading, but after reading the book 2-3 times, most understood Arm architecture. This lecture explains the book's content in more detail and specifically, soIf you take this courseEven 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 the 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. Additionally, having knowledge 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 take it without difficulty even if you don't have prerequisite knowledge.

Attitude like the following is 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

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

6,010

Learners

198

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

130 lectures ∙ (20hr 37min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

13 reviews

5.0

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

  • 16099195815님의 프로필 이미지
    16099195815

    Reviews 2

    Average Rating 5.0

    5

    30% enrolled

    • dlemrtn800751님의 프로필 이미지
      dlemrtn800751

      Reviews 3

      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!