inflearn logo

Armv7-A Architecture Overview for Junior Developers (Taught by the Author)

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

(5.0) 1 reviews

47 learners

Level Beginner

Course period Unlimited

ARM Architecture
ARM Architecture
armv7
armv7
cpu-architecture
cpu-architecture
ARM Architecture
ARM Architecture
armv7
armv7
cpu-architecture
cpu-architecture

What you will gain after the course

  • Characteristics of Arm Architecture and Arm Processors

  • How registers and assembly instructions are processed

  • Software stack executed by Exception Level and processor mode

  • Types of Exceptions and How They Work

  • AAPCS (Arm Architecture Procedure Call Standard), the convention for subroutine calls

  • Concepts of Non-secure World and Secure World that constitute TrustZone

  • The operating principles of barriers, cache, and virtual memory systems

<Notice>

Arm Architecture Full Author-Led Lecture Roadmap

This course <Armv7-A Architecture for New Developers (Author's Direct Lecture)> 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 use the roadmap (30% discount on all lectures). For your reference, the Arm Architecture Roadmap (complete author-led series) consists of two parts: Basic Course and Advanced Course .

In modern system software,
the most important Arm architecture

CPUs running in most devices, excluding desktop computers, are Arm processors. For a long time, the Arm architecture has been a must-learn topic for embedded developers. The popular Arm architectures can be broadly classified into Armv7-A and Armv8-A. Among these, 32-bit based (Armv7-A) Arm processors (Cortex-A9, Cortex-A15) are still being used in many diverse product lines (digital TVs, IoT devices, electric vehicles-autonomous driving, telematics).

If you are learning the Armv7 architecture for the first time?

If you are a learner studying the Arm architecture for the first time, you may feel overwhelmed by the vast amount of content. Additionally, job seekers or junior developers often need to prepare for technical interviews quickly within 1 to 2 weeks. This lecture has been structured with an optimal curriculum so that beginners in the Arm architecture can master core concepts in a short period of time.

Of course, a deep learning process is important to systematically learn the Arm architecture. In fact, the book I authored, <The Structure and Principles of Arm Architecture>, and the full-course lectures (totaling 60 hours) below have been chosen by many students.

🔹 If you want to learn systematically, please pay attention to the lectures below!

Target Audience 💁‍♂

I have created this course—Armv7-A Architecture Overview—for the following prospective students.

Job seekers in the system software field who need to prepare for technical interviews related to the Armv7-A architecture in a short period of time Job seekers in the system software field cần chuẩn bị cho các buổi phỏng vấn kỹ thuật liên quan đến kiến trúc Armv7-A trong thời gian ngắn

New and junior developers who want to quickly learn practical skills by grasping the core concepts of Armv7-A New and junior developers muốn nắm bắt nội dung cốt lõi của Armv7-A để nhanh chóng làm quen với công việc thực tế

A system software manager who wants to understand the core features of Armv7-A and manage projectsmuốn hiểu các tính năng cốt lõi của Armv7-A và quản lý dự án

What makes this lecture different

1⃣ A summary of the core features of the Armv7-A architecture that may appear in technical interviews

There is a very high probability that questions about the Armv7-A architecture will be asked during technical interviews for system software developers. Most domestic Linux system software developer positions (fabless, embedded development) specify Arm architecture as a requirement. While time to prepare for interviews is short, analyzing the vast Arm specification documents is a significant burden. By taking this course, you can quickly grasp the core concepts that make up the Armv7-A architecture.

2⃣ A summary of essential content for real-world development

When working on real-world projects, you must have a good understanding of the Arm architecture. Without knowledge of the Arm architecture, it is difficult to proceed with development during bring-up or debugging.

The features that make up the Armv7-A architecture are vast. The relevant reference documentation exceeds 1,000 pages, making it difficult to know which content is actually utilized in real-world projects. We have carefully organized the practical features of the Armv7-A architecture that junior developers must know.

3⃣ Introduction to Various Case Studies

While explaining the core concepts of the Arm architecture, this course covers how development tasks are carried out in real-world projects. It also explains various case studies (actual project issues) regarding how the learned content is applied in the industry. Furthermore, it covers the Linux kernel and bootloaders where key features of the Arm architecture are implemented.


If you master this course, you will be able to grow into an advanced system software developer.

I am rooting for you to upgrade your career with a higher salary and position.

You will learn these things 📕

We introduce the Arm processor while explaining the process of developing system semiconductors. We also introduce the basic functions that make up the Armv7-A architecture.

It explains the structure of registers and provides a detailed, easy-to-understand explanation of how registers are configured in the Armv7-A architecture.

We will cover the CPSR and SPSR registers, which are the core components among the registers that make up the Armv7-A architecture, in great detail. We will provide easy-to-understand explanations for each field that constitutes these registers.

It explains the basic structure of general-purpose registers in an easy-to-understand way through hands-on practice with the TRACE32 program.

We explain the relationship between the CPSR register values and processor modes in detail through TRACE32 debugging.

It explains why you need to know assembly instructions well with various examples (such as bootloaders). It also explains how assembly instructions are utilized in real-world projects.

We analyze the basic format of assembly instructions defined in the Armv7-A architecture and examine example instruction routines.

We analyze assembly instructions in detail through various methods and explain the operation of each instruction in an easy-to-understand manner.

I will explain the operation of assembly instructions in detail while debugging directly with the TRACE32 program.

Introducing processor modes, the core of the core of the Armv7-A architecture. It explains the concept of Privilege Levels associated with processor modes in a specific and easy-to-understand manner.

It explains the characteristics of each processor mode supported by Armv7-A and covers User mode. It provides a detailed explanation of what software actually runs in User mode.

It explains the Supervisor mode, where RTOS or the Linux kernel runs, in detail. It also provides specific explanations on how Supervisor mode is utilized in real-world projects.

Explains the basic operating principles of exceptions and reviews the exception vector table defined in Armv7-A.

Explains the exception handling process in Armv7-A in detail, step by step.

We will analyze in detail how actual exceptions are processed from a software perspective. We will also provide detailed explanations of the relevant assembly instructions and the exception vector table.

Explains from a software perspective how IRQ interrupt exceptions are handled in Armv7-A.

Through debugging practice with the TRACE32 program, we explain in an easy-to-understand manner how an exception is triggered when the SVC instruction is executed.

While directly practicing the Undefined Instruction exception using the TRACE32 program, the operational principles of the exception are explained in detail.

I will introduce why you should learn the AAPCS (Arm Procedure Call Standard), which is the convention for branching to subroutines such as functions. I will also explain its basic operating principles in an easy-to-understand manner.

We introduce the registers related to AAPCS. We explain which registers are used to store the arguments passed to functions and their return values.

We will explain the operating principles of AAPCS in an easy-to-understand manner by practicing BL, B, and BLX instructions directly using the TRACE32 program.

Explains the core concepts of TrustZone (Non-secure World, Secure World) and the execution flow in an easy-to-understand manner.

It explains in detail how the SMC instruction, which is the core of TrustZone, operates.

It explains the basic concepts of the memory model and what normal memory is in an easy-to-understand way.


Explains the concept of memory reordering and the memory barriers provided by Armv7-A in detail.

Explains the components that make up the virtual memory system and the execution flow through which virtual addresses are processed.

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

In the domestic system software field, I am the unprecedented author who has written books on both 'Arm Architecture (Armv8-A, Armv7-A)' and the 'Linux Kernel'. I am also an active developer who is well-versed in the latest system software trends (electric vehicles, system semiconductors - system software), and an educator who is most actively engaged in spreading knowledge within the system software field.

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

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

  • 'Programmers Dev Course: Linux System and Kernel Expert' Main Instructor (1st~2nd cohorts)


  • 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 key features of the Armv7-A architecture 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>

Notes before taking the course

Prerequisite Knowledge and Precautions

  • This lecture is easy to follow even without any prior knowledge.

  • Understanding the structure of operating systems or computers will be helpful in following the lecture.

  • The course introduces and explains example codes under the assumption that you are already familiar with the basic syntax of the C language.

  • The TRACE32 program used for the demonstration (debugging practice) in this lecture is not provided.

    If you wish to download the TRACE32 educational practice program and debug assembly instructions in detail, please take the previously released "Structure and Principles of Arm Architecture for System Software Development - Part 1/Part 2" course taught by the author.

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 the system software field

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

  • An undergraduate student aiming to pursue graduate studies in the field of system software (memory, file systems, operating systems).

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

Need to know before starting?

  • Microprocessor

  • CPU

  • Embedded

  • C language

  • Operating System

  • Computer Architecture

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

Curriculum

All

75 lectures ∙ (9hr 17min)

Published: 
Last updated: 

Reviews

All

1 reviews

5.0

1 reviews

  • heecheolsong님의 프로필 이미지
    heecheolsong

    Reviews 21

    Average Rating 5.0

    5

    31% enrolled

    austinkim's other courses

    Check out other courses by the instructor!

    Similar courses

    Explore other courses in the same field!

    $42.90