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

/

Embedded IoT

新卒開発者のための Armv7-A Architecture Overview (著者じきじき)

システムソフトウェアの基本中の基本、最新Armアーキテクチャ(Armv7-A)の核心を「システムソフトウェア開発のためのArmアーキテクチャの構造と原理」の著者がきちんと解説します!

31名 が受講中です。

  • austinkim
기술면접
입문자
임베디드리눅스
취업준비
ARM Architecture
armv7
cpu-architecture

こんなことが学べます

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

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

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

  • 例外の種類と動作方式

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

  • 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)は、まだ多くの多様なファミリ(デジタルテレビ、IoT機器、電気自動車-自動運転、テレメティクス)で使用されています

Armv7アーキテクチャを初めて学んだら?

Armアーキテクチャを初めて学ぶ学習者であれば、膨大な量に負担を感じることができます。また、就職準備生やジュニア開発者であれば、1~2週間以内に迅速に技術面接を準備しなければならないことが多いです。今回の講義では、 Armアーキテクチャの入門者が短期間で重要な概念を習得できるように、最適なカリキュラムを構成しました。

もちろん、 Armアーキテクチャを体系的に学ぶには、深い学習プロセスが重要です。実際、私が執筆したと下のフルコース講義(合計60時間分量)は多くの受講生の選択を受けてきました。

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

対象受講生💁‍♂

以下の予想受講者のために、今回の講義 - Armv7-A アーキテクチャ Overview 講義を制作しました。

Armv7-Aアーキテクチャに関連する技術面接を迅速に備えなければならないシステムSW分野の就労生

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

Armv7-Aの重要な機能を理解し、プロジェクトを管理するシステムソフトウェアマネージャ

講義の差別ポイント

1⃣技術面接から出てくるArmv7-Aアーキテクチャの核心機能をまとめまとめ

システムソフトウェア開発者の技術面接でArmv7-Aアーキテクチャについて質問する可能性は非常に高いです。多くの場合、国内のLinuxシステムソフトウェア開発者(ペリス、組み込み開発)の要件として、Armアーキテクチャを指定しています。面接を準備する時間は短いが、膨大な Arm 仕様文書を分析するには大きな負担となります。このレッスンを聞くと、Armv7-Aアーキテクチャを構成する重要な概念を迅速に把握できます。

2⃣ 現業開発で必ず知っておくべきことをまとめる

ビジネスプロジェクトを進めるには、Armアーキテクチャをよく理解する必要があります。ブリングアップやデバッグをするときにArmアーキテクチャを知らないと開発を進めるのは難しいです。

Armv7-Aアーキテクチャを構成する機能は膨大です。関連する参照文書は1000ページを超えており、どのような内容がビジネスプロジェクトで活用されているかを知ることは困難です。新開発者の観点からは必ず知っておく必要があり、Armv7-Aアーキテクチャの実用的な機能をよくまとめました。

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

Arm アーキテクチャの重要な内容を説明しながら、本番プロジェクトでどのように開発業務を進めるかについて説明します。また、学んだ内容がどのように事業プロジェクトに活用されるかについて、さまざまなケーススタディ(実践プロジェクト問題)も説明します。また、Armアーキテクチャの主な機能が実装されているLinuxカーネルやブートローダについても説明します。


今回の講義をうまくこなせば、高度なシステムソフトウェア開発者に成長することができます。

より高い年俸とポジションでキャリアをアップグレードしてください。

こんな内容を学びます📕

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

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

Armv7-Aアーキテクチャを構成するレジスタの中でコアである、CPSRレジスタとSPSRsレジスタについて細かく扱います。それぞれレジスタを構成するフィールドをわかりやすく説明します。

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

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

アセンブリ命令をよく知る必要がある理由は、さまざまな例(ブートローダ)で説明されています。また、アセンブリ命令が本番プロジェクトでどのように利用されるかを説明します。

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

さまざまな方法でアセンブリ命令を詳細に分析し、それぞれアセンブリ命令の動作方法を理解しやすく説明します。

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

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

Armv7-Aでサポートされている各プロセッサモードの特徴を説明し、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部作者直講>

受講前の注意

選手の知識と注意事項

  • 今回の講義は、選手の知識がなくても無難に従うことができる講義です。

  • オペレーティングシステムやコンピュータの構造を知っていれば、講義を理解するのに役立ちます。

  • 講義では、C言語の基本的な文法がわかっていると仮定し、サンプルコードを紹介して説明します。

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

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

こんな方に
おすすめです

学習対象は
誰でしょう?

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

  • システムソフトウェア分野にキャリアを転換しようとしている他の分野の開発者

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

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

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

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

  • マイクロプロセッサ

  • CPU

  • 組み込み

  • C言語

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

  • コンピュータアーキテクチャ

こんにちは
です。

5,437

受講生

148

受講レビュー

84

回答

4.9

講座評価

21

講座

글로벌 저자 & 리눅스 시스템 소프트웨어 개발자 (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

カリキュラム

全体

75件 ∙ (9時間 17分)

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

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

¥6,558

austinkimの他の講座

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

似ている講座

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