inflearn logo
知識共有
inflearn logo

新人開発者のための Armv7-A Architecture Overview (著者直講)

システムソフトウェアの基本中の基本、最新Armアーキテクチャ(Armv7-A)の核心を『システムソフトウェア開発のためのArmアーキテクチャの構造と原理』の著者がしっかりとお教えします!

難易度 入門

受講期間 無制限

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

受講後に得られること

  • ArmアーキテクチャとArmプロセッサの特徴

  • レジスタとアセンブリ命令の処理方式

  • 例外レベル(Exception Level)とプロセッサモード別に実行されるソフトウェアスタック

  • 例外(Exception)の種類と動作の仕組み

  • サブルーチン呼び出しのための規約であるAAPCS (Arm呼び出し規約)

  • TrustZoneを構成するノンセキュアワールドとセキュアワールドの概念

  • バリア、キャッシュ、そして仮想メモリシステムの動作原理

<お知らせ>

Armアーキテクチャ全シリーズ 著者直講講義ロードマップ

今回の講義<新人開発者のためのArmv7-A Architecture (著者直講)>は、ロードマップ 'システムソフトウェア開発者のためのArm - basic course' に含まれている講義です。

体系的にArmアーキテクチャ(Armv8-A, Armv7-A)を学びたい方は、ロードマップ(全講義30%割引)を活用することをお勧めします。ちなみに、Armアーキテクチャのロードマップ(著者直講 全体)は Basic Course Advanced Course の2つで構成されています。

最新のシステムソフトウェアにおいて
最も重要なArmアーキテクチャ

デスクトップコンピュータを除くほとんどのデバイスで実行されるCPUはArmプロセッサです。これまで組み込み開発者にとって、Armアーキテクチャは必ず学ばなければならないテーマでした。普及しているArmアーキテクチャを大きく分けると、Armv7-AとArmv8-Aアーキテクチャに分類できます。このうち、32ビットベース(Armv7-A)のArmプロセッサ(Cortex-A9, Cortex-A15)は、今でも多くの多様な製品群(デジタルTV、IoT機器、電気自動車-自動運転、テレマティクス)で使用されています。

Armv7アーキテクチャを初めて学ぶなら?

Armアーキテクチャを初めて学ぶ方なら、膨大な量に負担を感じるかもしれません。また、就職活動中の方やジュニア開発者の方なら、1〜2週間以内に素早く技術面接の準備をしなければならないケースも多いでしょう。今回の講義は、Armアーキテクチャの入門者が短期間で核心概念を習得できるよう、最適なカリキュラムを構成しました。

もちろん、Armアーキテクチャを体系的に学ぶには、深みのある学習プロセスが重要です。実際、私が執筆した<Armアーキテクチャの構造と原理>と、以下のフルコース講義(計60時間分)は、多くの受講生に選ばれてきました。

🔹 体系的に学びたい方は、以下の講義に注目してください!

対象受講生 💁‍♂

次のような受講生の方々のために、今回の講義「Armv7-Aアーキテクチャ Overview」を制作しました。

短時間でArmv7-Aアーキテクチャに関連する技術面接の対策をしなければならないシステムSW分野の就職準備生

Armv7-Aの核心的な内容を把握して、実務を早く習得したい新人およびジュニア開発者

Armv7-Aの核となる機能を理解し、プロジェクトを管理しようとしているシステムソフトウェア管理者

講義の差別化ポイント

1⃣ 技術面接で出題される可能性のあるArmv7-Aアーキテクチャの主要機能を要約整理

システムソフトウェア開発者の技術面接において、Armv7-Aアーキテクチャに関する質問をされる可能性は非常に高いです。ほとんどの国内リナックスシステムソフトウェア開発者(ファブレス、組み込み開発)の要件として、Armアーキテクチャが明記されています。面接の準備時間は短い一方で、膨大なArmのスペック文書を分析するのは大きな負担となります。本講義を受講すれば、Armv7-Aアーキテクチャを構成する核心的な概念を短時間で把握することができます。

2⃣ 実務の開発で必ず知っておくべき内容を整理

現場のプロジェクトを進める際には、Armアーキテクチャをよく理解しておく必要があります。ブリングアップやデバッグを行う際、Armアーキテクチャを知らなければ開発を進めることが困難です。

Armv7-Aアーキテクチャを構成する機能は膨大です。関連するリファレンス文書は1000ページを超え、どの内容が実務プロジェクトで活用されるのかを把握するのは困難です。新人開発者の視点で必ず知っておくべきArmv7-Aアーキテクチャの実用的な機能を分かりやすくまとめました。

3⃣ 多様なケーススタディの紹介

Armアーキテクチャの核心的な内容を説明しながら、実践プロジェクトでどのような方法で開発業務を進めるかを扱います。また、学んだ内容が実際の現場のプロジェクトでどのように活用されるかについて、多様なケーススタディ(実践プロジェクトのイシュー)も説明します。さらに、Armアーキテクチャの主要機能が実装されたLinuxカーネルやブートローダーについても扱います。


今回の講義をしっかりと習得すれば、高級システムソフトウェア開発者として成長することができます。

より高い年収とポジションでキャリアをアップグレードされることを応援しています。

このような内容を学びます 📕

システム半導体を開発するプロセスを説明しながら、Armプロセッサについて紹介します。また、Armv7-Aアーキテクチャを構成する基本的な機能についても紹介します。

レジスタの構造を説明し、Armv7-Aアーキテクチャにおいてレジスタがどのように構成されているかを、具体的かつ分かりやすく解説します。

Armv7-Aアーキテクチャを構成するレジスタの中でも核心となる、CPSRレジスタとSPSRレジスタについて詳しく扱います。それぞれのレジスタを構成するフィールドを分かりやすく説明します。

TRACE32プログラムで実習しながら、汎用レジスタの基本構造を分かりやすく説明します。

CPSRレジスタの値とプロセッサモードの関係を、TRACE32デバッグを通じて具体的に説明します。

アセンブリ言語を熟知すべき理由を、さまざまな例(ブートローダー)とともに説明します。また、アセンブリ命令が実際のプロジェクトでどのように活用されているかを説明します。

Armv7-Aアーキテクチャで定義されたアセンブリ命令の基本フォーマットと、例題の命令ルーチンを分析します。

様々な方式でアセンブリ命令を詳細に分析し、それぞれのアセンブリ命令の動作方式を分かりやすく説明します。

TRACE32プログラムで直接デバッグしながら、アセンブリ命令の動作方式を詳細に説明します。

Armv7-Aアーキテクチャの核心中の核心であるプロセッサモードを紹介します。プロセッサモードに関連するPrivilege Levelの概念を、具体的かつ分かりやすく説明します。

Armv7-Aでサポートされている各プロセッサモードの特徴を説明し、Userモードについて取り上げます。Userモードで実際にどのようなソフトウェアが実行されるのかを具体的に説明します。

RTOSやLinuxカーネルが実行されるSupervisorモードについて詳細に説明します。実戦プロジェクトでSupervisorがどのように活用されているか具体的に説明します。

例外の基本動作原理を説明し、Armv7-Aで定義された例外ベクトルテーブルをレビューします。

Armv7-Aで処理される例外の処理方式を、段階別に詳しく説明します。

実際の例外がソフトウェア的にどのような方式で処理されるのかを詳細に分析します。関連するアセンブリ命令と例外ベクトルテーブルを詳細に説明します。

IRQ割り込み例外がArmv7-Aでどのように処理されるのか、ソフトウェアの観点から説明します。

TRACE32プログラムによるデバッグ実習を通じて、SVC命令を実行するとどのような方式でエクセプションが誘発されるのか、分かりやすく説明します。

Undefined Instructionエクセプションを実際にTRACE32プログラムで実習しながら、エクセプションの動作原理を具体的に説明します。

関数のようなサブルーチンへ分岐する規約であるAAPCS(Arm Procedure Call Standard)をなぜ学ぶべきかについて紹介します。また、基本的な動作原理を分かりやすく説明します。

AAPCSに関連するレジスタを紹介します。関数に渡される引数や戻り値が、どのレジスタを使用して保存されるかを説明します。

BL、B、BLX命令を実際にTRACE32プログラムで実習しながら、AAPCSの動作原理を分かりやすく説明します。

TrustZoneの核心概念(ノンセキュアワールド、セキュアワールド)と実行フローについて、分かりやすく説明します。

TrustZoneの核心であるSMC命令の動作方式を詳細に説明します。

メモリーモデルの基本概念と、ノーマルメモリーとは何かについて分かりやすく説明します。


メモリーリオーダリングの概念と、Armv7-Aで提供されるメモリーバリアについて詳細に説明します。

仮想メモリシステムを構成する要素と、仮想アドレスが処理される実行フローについて説明します。

執筆・講義の経験を活かし、
誰よりも深く詳細に!

国内のシステムソフトウェア分野において前例のない!「Armアーキテクチャ(Armv8-A, Armv7-A)」と「Linuxカーネル」の書籍を執筆した著者です。また、最新のシステムソフトウェアトレンド(電気自動車、システム半導体-システムソフトウェア)を最も熟知している現役の開発者であり、システムソフトウェア分野で最も活発に知識の普及活動を行っている教育者でもあります。

  • 『システムソフトウェア開発のためのArmアーキテクチャの構造と原理』(2024年、大韓民国学術院 優秀図書賞 著者

  • 'デバッグを通じて学ぶLinuxカーネルの構造と原理' (2021年、大韓民国学術院 優秀図書賞) 著者

  • 'プログラマーズ・デブコース:Linuxシステムおよびカーネルエキスパート' メイン講師(1~2期)


  • LG電子 'Linuxカーネル' および 'Armv8アーキテクチャ' 社内講師(国内および 海外開発者を含む) - (2020年〜2024年)

国内で誰よりもArmv7-Aアーキテクチャを構成する主要機能をうまく説明できる教育者であると、自信を持って申し上げることができます。

受講生が残したリアルな受講評

<システムソフトウェア開発のためのArmアーキテクチャの構造と原理 - 第1/2部 著者直講>

受講前のご参考事項

予備知識および注意事項

  • 今回の講義は予備知識がなくても無理なくついていける講義です。

  • OSやコンピュータの構造に関する知識があれば、講義を理解するのに役立ちます。

  • 講義ではC言語の基本文法は習得しているものと想定し、サンプルコードの紹介と説明を行います。

  • 今回の講義で進行する(デバッグ実習)TRACE32プログラムは提供されません。

    TRACE32教育用実習プログラムをダウンロードして、アセンブリ命令を詳細にデバッグしたい方は、すでに公開されている「システムソフトウェア開発のためのArmアーキテクチャの構造と原理 - 第1部/第2部」の著者直講義を受講してください。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • システム半導体(ファブレス)、電気自動車分野(自動運転、インフォテインメント)を含むシステムソフトウェア分野で、自らの能力を高めていきたいジュニア開発者

  • システムソフトウェア分野へキャリアチェンジしようとしている他分野の開発者

  • Armアーキテクチャの機能を活用し、実務でどのようにデバッグを行うかを知りたいシステムソフトウェア開発者(システム半導体、電気自動車)

  • システムソフトウェア分野(メモリ、ファイルシステム、オペレーティングシステム)の大学院進学を目指す大学生

  • システム半導体(ファブレス)、電気自動車分野でシステムソフトウェア開発を志望している就活生

前提知識、
必要でしょうか?

  • マイクロプロセッサ

  • CPU

  • 組み込み

  • C言語

  • オペレーティングシステム

  • コンピュータ構成論

こんにちは
austinkimです。

6,316

受講生

241

受講レビュー

96

回答

4.9

講座評価

22

講座

グローバル著者 & リナックスシステムソフトウェア開発者 (Arm, RISC-V アーキテクチャ)

国内のシステムソフトウェア分野において前例のない!「Armアーキテクチャ(Armv8-A, Armv7-A)」と「Linuxカーネル」の本を執筆した著者(2冊とも大韓民国学術院の優秀図書に選定であり、国内初めて海外出版社(Packt)を通じて「Reverse Engineering Armv8-A Systems」の本(英語)を執筆したグローバル著者です。何よりも最新のシステムソフトウェアトレンド(電気自動車、システム半導体-システムソフトウェア)を最も熟知している現役エンジニアです。また、システムソフトウェア分野で最も活発に知識共有活動を行っている教育者でもあります。

  • 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' 著者(英語、Packt出版), (Packt Publishing)

  • 『システムソフトウェア開発のためのArmアーキテクチャの構造と原理』2024年、大韓民国学術院優秀図書賞)著者)

  • 『デバッグを通じて学ぶLinuxカーネルの構造と原理』2021年、大韓民国学術院 優秀図書賞)著者)

  • 「Programmers Dev Course:Linuxシステムおよびカーネル専門家」メイン講師

  • 2022年6月、韓国コンピューター総合学術大会 (KCC2022) - チュートリアル発表 [ftraceを利用してリ눅스カーネルを攻略する]

  • LG電子「Linuxカーネル」および「Armv8アーキテクチャ」社内講師(国内および海外開発者を含む) - (2020年〜現在)

韓国国内で誰よりもリ눅스カーネルとArmアーキテクチャ(Armv8-A, Armv7-A)を分かりやすく説明できる教育者であると、自信を持って申し上げます。

講義に関するお問い合わせ:austindh.kim@gmail.com

主要ロードマップ 🎯

'システムソフトウェア開発者のためのArm - basic course'

'システムソフトウェア開発者のためのArm - advanced course'

システムソフトウェア開発者のためのLinux kernel - basic course

もっと見る

カリキュラム

全体

75件 ∙ (9時間 17分)

講座掲載日: 
最終更新日: 

受講レビュー

全体

1件

5.0

1件の受講レビュー

  • heecheolsong님의 프로필 이미지
    heecheolsong

    受講レビュー 21

    平均評価 5.0

    5

    31% 受講後に作成

    austinkimの他の講座

    知識共有者の他の講座を見てみましょう!

    似ている講座

    同じ分野の他の講座を見てみましょう!

    ¥7,018