inflearn logo
Challenge
모집 예정

[Thử thách dành cho doanh nghiệp] Chinh phục hoàn toàn cốt lõi kiến trúc Arm (Armv8-A) thông qua gỡ lỗi (debugging)

Thông qua việc gỡ lỗi (debugging), bạn sẽ hiểu rõ 100% các tính năng cốt lõi của kiến trúc Armv8-A để xây dựng nền tảng vững chắc cho việc phát triển phần mềm hệ thống. Khóa học này sẽ giúp bạn có thể bắt tay ngay vào công việc thực tế.

debugging
linux-kernel
armv8
trace32
B2B Only Challenge

31개 수업 학습

지식공유자와 멘토링 혜택!

무제한 복습, 내 것으로 만들어요.

austinkim님과 함께해요!

Xác minh sự nghiệp

6,575

Học viên

265

Đánh giá

102

Trả lời

4.9

Xếp hạng

23

Các khóa học

Tác giả toàn cầu & Nhà phát triển phần mềm hệ thống Linux (Kiến trúc Arm, RISC-V)

tác giả duy nhất và chưa từng có tiền lệ trong lĩnh vực phần mềm hệ thống tại Hàn Quốc đã viết sách về 'Kiến trúc Arm (Armv8-A, Armv7-A)' và 'Linux Kernel' (cả hai cuốn sách đều được Viện Hàn lâm Khoa học Quốc gia Hàn Quốc chọn là Sách ưu tú), đồng thời là tác giả toàn cầu đầu tiên tại Hàn Quốc viết cuốn sách "Reverse Engineering Armv8-A Systems" (bằng tiếng Anh) thông qua nhà xuất bản nước ngoài (Packt). Trên hết, ông là một nhà phát triển đang làm việc thực tế, người nắm rõ nhất các xu hướng phần mềm hệ thống mới nhất (xe điện, bán dẫn hệ thống - phần mềm hệ thống). Ngoài ra, ông còn là một nhà giáo dục hoạt động tích cực nhất trong việc truyền bá kiến thức trong lĩnh vực phần mềm hệ thống.

  • Người chia sẻ kiến thức chuyên môn và Tư vấn viên

  • Làm việc tại nhóm Mã nguồn mở Linux Kernel của LG Electronics (~tháng 5 năm 2026)

  • 'Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis' Tác giả sách (tiếng Anh), (Nhà xuất bản Packt)

  • Tác giả cuốn 'Cấu trúc và nguyên lý của kiến trúc Arm dành cho phát triển phần mềm hệ thống' (Giải thưởng Sách hay của Viện Hàn lâm Khoa học Quốc gia Hàn Quốc năm 2024))

  • Tác giả cuốn sách 'Cấu trúc và nguyên lý của nhân Linux học qua việc gỡ lỗi' (Giải thưởng Sách hay của Viện Hàn lâm Khoa học Quốc gia Hàn Quốc năm 2021)

  • Giảng viên chính của khóa học 'Programmers Dev Course: Chuyên gia Hệ thống và Nhân Linux'

     

 

Tôi có thể tự tin khẳng định rằng mình là một nhà giáo dục có khả năng giải thích về nhân Linux và kiến trúc Arm (Armv8-A, Armv7-A) tốt hơn bất kỳ ai khác tại Hàn Quốc.

Liên hệ bài giảng: austindh.kim@gmail.com

 

Lộ trình chính 🎯

'Arm dành cho nhà phát triển phần mềm hệ thống - khóa học cơ bản'

'Arm dành cho nhà phát triển phần mềm hệ thống - khóa học nâng cao'

Linux kernel dành cho nhà phát triển phần mềm hệ thống - khóa học cơ bản

 

Thêm

Giới thiệu giảng viên

Xin chào. Tôi là Kim Dong-hyun (Austin Kim), một kỹ sư kiêm người chia sẻ kiến thức, chuyên giải quyết các vấn đề thực tế về phần mềm hệ thống và Linux nhúng dưới góc độ gỡ lỗi (debugging).

Tôi là một kỹ sư phần mềm hệ thống với hơn 15 năm kinh nghiệm phát triển nhân Linux và các trình điều khiển thiết bị (device driver) trên hệ thống Arm, RISC-V, đồng thời trực tiếp phân tích các vấn đề lỗi khởi động, crash nhân (Exception, Watchdog Reset) tại hiện trường. Thông qua nhiều hoạt động đa dạng, tôi đã và đang không ngừng chia sẻ những kiến thức hữu ích đến cộng đồng các nhà phát triển.

Thông qua khóa học này, tôi sẽ chọn lọc và truyền tải những nội dung thực sự cần thiết trong thực tế giữa các tính năng của kiến trúc Armv8-A vốn thường gây cảm giác phức tạp. Khóa học được tiến hành để bạn có thể tự mình thấu hiểu kiến trúc Arm thông qua các bài thực hành gỡ lỗi (debugging) thực chiến.

Sách đã xuất bản và lịch sử giảng dạy

  • Cấu trúc và nguyên lý của kiến trúc Arm dành cho phát triển phần mềm hệ thống — Giải thưởng Sách hay của Viện Hàn lâm Khoa học Quốc gia Hàn Quốc (năm 2024)

  • Cấu trúc và nguyên lý của Linux Kernel học qua Debugging — Giải thưởng Sách xuất sắc của Viện Hàn lâm Khoa học Quốc gia Hàn Quốc (2021)

  • Reverse Engineering Armv8-A Systems: A practical guide to Kernel, Firmware, and TrustZone analysis (Packt Publishing, 2025) — Sách tiếng Anh xuất bản toàn cầu

  • Khóa hội thảo chuyên đề: Debugging lỗi Crash Armv8-A cho Telechips: Tháng 1 năm 2025

  • Giảng viên chính khóa học Chuyên gia Hệ thống Linux và Kernel tại Programmers DevCourse (2023~2024) (Khóa 1~2)

Lịch sử thuyết trình tại hội thảo

Tiểu sử giảng viên

  • Hiện đang làm việc tại Đội ngũ Nguồn mở của LG Electronics

  • Lĩnh vực phát triển: Automotive (Xe điện), Điện thoại thông minh, Chipset BSP


[Chương trình giảng dạy tiêu biểu] Cấu trúc của kiến trúc Armv8-A học qua gỡ lỗi (debugging)

Mục tiêu khóa học

Mục tiêu của khóa học là giúp bạn hiểu 100% các tính năng cốt lõi của kiến trúc Armv8-A, từ đó bắt đầu thực hiện các công việc thực tế dựa trên nền tảng này:

  • Hiểu các chức năng cốt lõi của kiến trúc Armv8-A được sử dụng trong thực tế công việc dựa trên luồng thực thi.

  • Có thể sử dụng trình gỡ lỗi TRACE32 để theo dõi và phân tích mã nguồn theo từng đơn vị lệnh hợp ngữ (assembly).

  • Có thể hiểu rõ luồng thực thi khi xảy ra Exception / Interrupt và giải thích được nguyên lý hoạt động.

  • Có thể phân tích hoạt động của nhân Linux dưới góc độ thanh ghi và hợp ngữ.

  • Có thể thực hiện phân tích sơ bộ để truy tìm nguyên nhân khi xảy ra lỗi Bring-up hoặc Kernel Crash.

Đối tượng giảng dạy

Là các nhà phát triển phần mềm hệ thống Linux (nhân viên mới và nhà phát triển cấp Junior) như dưới đây:

  • Kỹ sư phát triển driver Linux trên hệ thống dựa trên Armv8-A

  • Nhà phát triển cần phân tích và giải quyết các vấn đề về kernel crash, lỗi boot và lỗi Fault

  • Kỹ sư hệ thống cần hiểu luồng vận hành giữa Firmware – Kernel – Driver

  • Nhà phát triển thực tế muốn hiểu kiến trúc Armv8-A từ góc độ thực thi thay vì chỉ lý thuyết.

Điểm khác biệt cốt lõi của bài giảng

  • Sử dụng TRACE32 để thực hành các chức năng chính của kiến trúc Armv8-A (lệnh assembly, exception) vốn được ứng dụng thực tế trong công việc.

  • Giới thiệu về trình tự khởi động của chipset dựa trên Arm và các nghiên cứu tình huống (case study) phát sinh trong các dự án thực tế.

  • Thực hành về kiến trúc Armv8-A (Exception) thông qua việc gỡ lỗi các bản kết xuất bộ nhớ (memory dump) và nhật ký hạt nhân (kernel log) thực tế.

Chương trình giảng dạy

(Ngày 1)

Kiểm tra môi trường thực hành TRACE32 (chế độ mô phỏng)

  • Các lệnh cơ bản, môi trường thực hành

Các tính năng cốt lõi và mô hình thực thi của kiến trúc Armv8-A

  • Lệnh Assembly, thanh ghi, mô hình Exception

  • AAPCS, Hypervisor, TrustZone, MMU

Cấu trúc và luồng thực thi của Exception Level (EL0~EL3)

  • Trình tự khởi động (Boot Sequence) và Cấp độ ngoại lệ (Exception Level)

  • Ngăn xếp phần mềm theo từng cấp độ ngoại lệ (Exception Level)

  • Thực hành Exception Level với TRACE32

Cấu trúc thanh ghi và các thanh ghi hệ thống chính

  • Các thanh ghi thường được sử dụng trong quá trình gỡ lỗi

  • Phân tích các thanh ghi hệ thống được thiết lập trong mã khởi động (startup code)

  • Phân tích các thanh ghi chính bằng TRACE32

Phân tích lệnh Assembly và các cấu trúc chính

  • Phân tích các lệnh hợp ngữ chính

  • Thử dịch ngược mã lệnh Assembly sang mã C

  • Thực hành gỡ lỗi lệnh hợp ngữ bằng TRACE32

Phân tích Calling convention

  • Phân tích các thanh ghi và lệnh chính

  • Thực hành gỡ lỗi Calling convention bằng TRACE32

(Ngày 2)

Luồng thực thi của Exception và Interrupt

  • Phân tích luồng thực thi chính và các thanh ghi hệ thống liên quan

  • Thực hành Exception sử dụng Memory Dump (TRACE32)

TrustZone

  • Khái niệm về Thế giới Bảo mật và Thế giới Không bảo mật

  • Phương pháp gỡ lỗi của Secure OS (Exception, Watchdog reset)

  • Phân tích các stack chính của Arm Trusted Firmware

Arm Virtualization (Hypervisor)

  • Phân tích các lệnh chính của Virtualization và ngăn xếp Hypervisor

  • Phân tích trình xử lý ngoại lệ (exception handler) của XEN Hypervisor

  • Phân tích các thanh ghi hệ thống chính bằng TRACE32

Hệ thống bộ nhớ ảo

  • Phân tích quá trình chuyển đổi trang đa cấp (VA39, VA48)

  • Các thanh ghi hệ thống chính (TCR_EL1, TTBR1_EL0)

  • Thực hành gỡ lỗi chuyển đổi địa chỉ ảo bằng TRACE32

Giới thiệu các tính năng mở rộng của Armv9-A

  • Memory Tag Extensions (MTE )

  • Tính năng PAC, BTI

[Chương trình bổ sung 1] Cấu trúc của Linux Kernel và Device Driver học qua Debugging

Mục tiêu khóa học

Mục tiêu chính là hiểu các chức năng quan trọng của nhân Linux được sử dụng trong phát triển thực tế, từ đó có thể phát triển các trình điều khiển thiết bị Linux (dành cho nhà phát triển chipset, nhà phát triển sản phẩm) trong thời gian ngắn. Ngoài ra, việc đảm bảo năng lực để tự mình giải quyết các vấn đề đa dạng phát sinh trong thực tế cũng là một mục tiêu chính:

  • Hiểu rõ luồng khởi động của nhân Linux và quá trình khởi tạo trình điều khiển thiết bị theo từng bước.

  • Có thể giải quyết các vấn đề khác nhau của driver thiết bị bằng cách tận dụng tốt các tính năng debug đa dạng mà Linux cung cấp (debugfs, ftrace).

  • Làm quen với các API của kernel bằng cách học các khái niệm về tiến trình, ngắt, kỹ thuật đồng bộ hóa kernel và bộ nhớ ảo, vốn là cốt lõi của Linux kernel.

  • Có thể phân tích các cấu trúc dữ liệu chính của nhân hệ điều hành (kernel) bằng cách phân tích bản sao lưu nhị phân (binary dump).

  • Có thể tự mình thực hiện phân tích bước đầu đối với các vấn đề về crash và bring-up dựa trên log hạt nhân (kernel log) và bản sao lưu bộ nhớ (memory dump).

Đối tượng bài giảng

Là các nhà phát triển phần mềm hệ thống Linux (mới tốt nghiệp hoặc cấp độ junior) như sau:

  • Kỹ sư phát triển Linux kernel và device driver trên SoC dựa trên cấu trúc Arm

  • Kỹ sư cần phát triển thiết bị Linux (build kernel, phân tích device tree, tối ưu hóa bootloader) trong thời gian ngắn

  • Kỹ sư muốn tùy chỉnh trình điều khiển thiết bị (device driver) trong thời gian ngắn

  • Nhà phát triển cần nắm vững các tính năng gỡ lỗi của nhân Linux để phân tích các vấn đề như lỗi khởi động, kernel panic, kernel crash và watchdog reset.

  • Kỹ sư hệ thống cần hiểu toàn bộ luồng thực thi giữa firmware bootloader và trình điều khiển hạt nhân (kernel driver)

Điểm khác biệt cốt lõi của bài giảng

  • Trực tiếp tạo các bản vá (patch) cho các chức năng đa dạng cần thiết trong việc phát triển trình điều khiển thiết bị (Device Tree, Kernel Config, Device Driver) để thực hiện gỡ lỗi.

  • Trong phần thực hành, chúng tôi sử dụng Crash utility và TRACE32, những công cụ được sử dụng trực tiếp trong thực tế tại các công ty công nghệ lớn (như Qualcomm, NVIDIA).

  • Phân tích các cấu trúc dữ liệu chính của nhân Linux (tiến trình, ngắt, lập lịch tác vụ, hệ thống bộ nhớ ảo) thông qua thực hành kết xuất bộ nhớ (memory dump).

  • Giới thiệu về trình tự khởi động (booting sequence) của chipset dựa trên Arm (hoặc RISC-V) và các trường hợp nghiên cứu (case study) phát sinh trong các dự án thực tế.

Chương trình giảng dạy

(Ngày 1)

Kiểm tra môi trường thực hành TRACE32 (chế độ Simulator) + Môi trường board

  • Các lệnh cơ bản, môi trường thực hành

Lý do tại sao phải học Linux Kernel

  • Phát triển device driver một cách hiệu quả

  • Giải quyết các vấn đề đa dạng của dự án

  • Nền tảng để viết mã nguồn ổn định

Kiến trúc Arm cần thiết để hiểu nhân Linux (dựa trên Armv8, AArch64)

  • Mức ngoại lệ (Exception Level), Bảng vectơ ngoại lệ (Exception Vector Table), Thanh ghi (Mục đích chung)

  • Giải thích thêm về RISC-V (nếu cần): Chế độ đặc quyền (Privilege mode) và trình xử lý bẫy (Trap handler)

Các tính năng debug chính của Kernel

  • printk, debugfs, ftrace, kdump

  • Cách phân tích bản ghi nhớ (memory dump) và nhật ký hạt nhân (kernel log)

  • Cách viết bản vá lỗi (patch) để gỡ lỗi

  • Cách sử dụng tiện ích Crash

Các tính năng cốt lõi của trình điều khiển thiết bị (device driver)

  • Cấu trúc của sysfs và thiết bị nền tảng (platform device)

  • Phân tích cấu trúc của Device Tree và các API cốt lõi liên quan trong Kernel

  • Cách gỡ lỗi Device Tree

  • Giải thích cấu trúc cốt lõi của các trình điều khiển thiết bị chính

Tiến trình

  • Khái niệm cơ bản về quy trình, phân tích quá trình tạo và kết thúc quy trình

  • Phân tích cấu trúc dữ liệu struct task_struct và thread_info

  • Phân tích cấu trúc của tiến trình và ngăn xếp (stack)

  • Phân tích các vấn đề chính phát sinh trong quá trình tạo và kết thúc tiến trình

  • Phân tích các cấu trúc dữ liệu chính bằng cách phân tích bản sao lưu bộ nhớ (memory dump)

(Ngày 2)

IRQ và Bottom Half

  • Phân tích trình xử lý vector ngắt (dưới góc nhìn Armv8)

  • Giới thiệu về Interrupt Context và in_interrupt()

  • Phân tích cấu trúc dữ liệu mô tả ngắt (struct irq_desc)

  • Phân tích các cấu trúc dữ liệu chính thông qua phân tích memory dump

Bottom half

  • Giới thiệu các kỹ thuật Bottom half chính (threaded irq, workqueue, soft irq)

  • Cách gỡ lỗi các vấn đề chính liên quan đến ngắt (IRQ Storm, các vấn đề chính của trình điều khiển thiết bị)

  • Các vấn đề chính về bottom half của trình điều khiển thiết bị

Timer động

  • Khái niệm cơ bản về jiffies và HZ

  • Cách viết trình xử lý bộ định thời động (dynamic timer handler)

  • Cách gỡ lỗi luồng thời gian thực thi

Hệ thống gọi (System call) và Tín hiệu (Signal)

  • Khái niệm cơ bản và luồng thực thi của System Call

  • Luồng thực thi của System Call và Device Driver

  • Hoạt động cơ bản của Signal

  • Các tín hiệu chính cần biết trong dự án thực tế

  • Phân tích các cấu trúc dữ liệu chính thông qua phân tích memory dump

Lập lịch tác vụ (Task Scheduling)

  • Hiểu khái niệm về lập lịch (scheduling) và chuyển đổi ngữ cảnh (context switching)

  • Xác định mức độ ưu tiên và trạng thái tiến trình

  • Cấu trúc dữ liệu: Runqueue, Scheduler Class

  • Thời điểm preemption và preemption enable/disable

  • sched_switch, sched_wake_up: phân tích ftrace

  • Giới thiệu các vấn đề hiệu suất chính liên quan đến Task scheduling

  • Phân tích các cấu trúc dữ liệu chính thông qua phân tích memory dump

(Ngày 3)

Đồng bộ hóa

  • Giới thiệu về race và critical section

  • spinlock: queued spinlock, ticket spinlock

  • Giới thiệu nguyên lý hoạt động và các cấu trúc dữ liệu chính của Mutex

  • thao tác nguyên tử

  • Giới thiệu các vấn đề race condition chính trong dự án thực tế

  • Phân tích các cấu trúc dữ liệu chính bằng cách phân tích bản sao lưu bộ nhớ (memory dump)

VFS(Virtual File System)

  • Giới thiệu cấu trúc tổng thể và luồng thực thi của VFS

  • Các cấu trúc dữ liệu liên quan đến VFS

  • Giới thiệu các hệ thống tập tin cốt lõi - ext4, fat

  • Các vấn đề thực tế chính liên quan đến hệ thống tệp

  • Phân tích các cấu trúc dữ liệu chính bằng cách phân tích bản ghi nhớ bộ nhớ (memory dump)

Quản lý bộ nhớ

  • Giải thích cấu trúc của bản đồ bộ nhớ ảo và hệ thống bộ nhớ ảo

  • Phân tích struct zone và node

  • Bộ phân bổ bộ nhớ chính (SLUB allocator)

  • kmalloc và gfp_flags

  • Các vấn đề chính liên quan đến Memory và các tính năng debug

  • Phân tích các cấu trúc dữ liệu chính thông qua phân tích bản ghi nhớ bộ nhớ (memory dump)

Nghiên cứu các trường hợp sự cố chính của trình điều khiển thiết bị (device driver)

  • Không đăng ký được device node

  • Vấn đề không đăng ký được ngắt (interrupt) và vấn đề bão ngắt (interrupt storm)

  • Vấn đề lỗi tải hình ảnh firmware

  • Lỗi truyền tải I2C và SPI

Hỏi đáp của học viên

  • Phương pháp gỡ lỗi, giải quyết vấn đề và phân tích mã nguồn nhân (kernel)

  • Cách gỡ lỗi các vấn đề liên quan đến phần cứng

  • Cộng đồng nguồn mở

[Chương trình giảng dạy bổ sung 2] Cấu trúc của kiến trúc RISC-V học qua gỡ lỗi (debugging)

Mục tiêu bài giảng

Mục tiêu của khóa học là giúp bạn hiểu 100% các tính năng cốt lõi của kiến trúc RISC-V, từ đó bắt đầu áp dụng vào công việc thực tế:

  • Hiểu các tính năng cốt lõi của kiến trúc RISC-V được ứng dụng trong thực tế.

  • Có thể gỡ lỗi các lệnh hợp ngữ (assembly) bằng trình gỡ lỗi TRACE32.

  • Có thể hiểu và giải thích chính xác luồng thực thi khi xảy ra Trap (Exception) và Interrupt.

  • Có thể phân tích hoạt động của kernel dưới góc độ thanh ghi và hợp ngữ.

  • Có khả năng phân tích sơ bộ các vấn đề về bring-up và lỗi crash.

Đối tượng bài giảng

Là các nhà phát triển phần mềm hệ thống Linux (mới tốt nghiệp hoặc cấp độ junior) như sau:

  • Kỹ sư phát triển trình điều khiển (driver) Linux trên hệ thống dựa trên RISC-V

  • Kỹ sư muốn thực hiện system bring-up (bootloader, Linux driver) trên hệ thống dựa trên RISC-V

  • Nhà phát triển cần phân tích và giải quyết các vấn đề về kernel crash, lỗi khởi động (booting issue) và lỗi hệ thống (fault).

  • Kỹ sư hệ thống cần hiểu luồng giữa Firmware–Kernel–Driver

  • Nhà phát triển thực tế muốn hiểu kiến trúc RISC-V dưới góc độ thực thi thay vì chỉ là lý thuyết.

Điểm khác biệt cốt lõi của bài giảng

  • Giải thích bằng cách so sánh sự khác biệt giữa kiến trúc Arm và RISC-V.

  • Sử dụng TRACE32 (chế độ mô phỏng) để thực hành các tính năng chính của kiến trúc RISC-V (lệnh assembly, exception) vốn chắc chắn được ứng dụng trong thực tế công việc.

  • Giới thiệu về trình tự khởi động của chipset dựa trên RISC-V và các nghiên cứu tình huống (case study) phát sinh trong các dự án thực tế.

  • Thực hành kiến trúc RISC-V (Exception) thông qua việc gỡ lỗi (debug) các bản ghi nhật ký kernel (kernel log) và kết xuất bộ nhớ (memory dump) thực tế.

Chương trình giảng dạy

(Ngày 1)

Kiểm tra môi trường thực hành TRACE32 (chế độ Simulator)

  • Các lệnh cơ bản, môi trường thực hành

Giới thiệu các tính năng cốt lõi và mô hình thực thi của kiến trúc RISC-V

  • Lệnh Assembly, thanh ghi, mô hình Exception

  • Opensbi, Calling convention, MMU

Cấu trúc và luồng thực thi của chế độ đặc quyền (Privilege mode)

  • Trình tự khởi động (Boot Sequence) và Chế độ máy (Machine mode)

  • Ngăn xếp phần mềm (software stack) theo từng chế độ đặc quyền (Privilege mode)

  • Thực hành Privilege mode với TRACE32

Cấu trúc thanh ghi và các thanh ghi CSR chính

  • Các thanh ghi thường được sử dụng trong quá trình gỡ lỗi

  • Phân tích các thanh ghi CSR được thiết lập trong mã khởi động (startup code)

  • Phân tích các thanh ghi chính bằng TRACE32

Phân tích các lệnh hợp ngữ và cấu trúc chính

  • Phân tích các lệnh hợp ngữ chính

  • Thử nghiệm dịch ngược mã lệnh assembly sang mã C

  • Thực hành gỡ lỗi câu lệnh hợp ngữ bằng TRACE32

Phân tích Calling convention

  • Phân tích các thanh ghi và lệnh chính

  • Thực hành gỡ lỗi Calling convention bằng TRACE32

(Ngày 2)

Luồng thực thi của Exception và Interrupt

  • Phân tích luồng thực thi chính và các CSR liên quan

  • Thực hành Exception sử dụng Memory Dump (TRACE32)

Đồng bộ hóa bộ nhớ

  • Các lệnh Assembly chính

  • Giới thiệu các trường hợp nghiên cứu điển hình (case study) chính

Hệ thống bộ nhớ ảo

  • Phân tích quá trình chuyển đổi trang đa cấp (SA39, SA48)

  • Các thanh ghi CSR chính (satp)

  • Thực hành gỡ lỗi chuyển đổi địa chỉ ảo bằng TRACE32

Thực hành phân tích bản ghi nhớ bộ nhớ (memory dump)

  • Gỡ lỗi Stack Corruption, khôi phục Call Stack (sử dụng TRACE32)

  • Phân tích các dấu hiệu crash chính

Môi trường thực hành và Kiến trúc Arm cùng Nhân Linux được áp dụng

  • TRACE32 được sử dụng trong bài giảng thực hành là chế độ mô phỏng (simulator mode), và có thể tải xuống từ khóa học 'Cấu trúc và nguyên lý của kiến trúc Arm dành cho phát triển phần mềm hệ thống - Phần 1/2 do chính tác giả giảng dạy' trên Inflearn. (Yêu cầu phải đăng ký khóa học)

  • Bạn không cần bảng mạch thực hành riêng mà chỉ cần một chiếc máy tính xách tay.

  • Bản sao lưu bộ nhớ (memory dump) được sử dụng trong bài giảng thực hành sẽ được cung cấp riêng và phần thực hành gỡ lỗi bộ nhớ sẽ được tiến hành dựa trên chế độ mô phỏng của TRACE32.

  • Chủ yếu giải thích các tính năng chính của Armv8-A (Cortex-A53, Cortex-A78), và khi cần thiết có thể giải thích thêm các nội dung về Armv9-A (Cortex-X2) và Armv7-A (Cortex-A9, A15).

  • Phiên bản Linux kernel sẽ được thực hiện trong khoảng từ v6.1 đến v6.6. Các phiên bản kernel trước đó (v5.4~v5.15) cũng có thể được thực hiện và có thể thỏa thuận thêm.


6월

21일

챌린지 시작일

2028년 6월 21일 오후 03:00

챌린지 종료일

2028년 6월 29일 오후 02:30

챌린지 커리큘럼

Tất cả

31 bài giảng

챌린지에서 배워요

  • Hiểu các cốt lõi của kiến trúc Armv8-A được sử dụng trong thực tế công việc dựa trên luồng thực thi.

  • Bạn có thể sử dụng trình gỡ lỗi TRACE32 để theo dõi và phân tích mã theo từng đơn vị lệnh hợp ngữ (assembly).

  • Có thể hiểu rõ luồng thực thi khi xảy ra Exception / Interrupt và giải thích được nguyên lý hoạt động.

  • Có thể phân tích hoạt động của nhân Linux dưới góc độ thanh ghi và hợp ngữ.

  • Đảm bảo năng lực phân tích sơ bộ để truy vết nguyên nhân khi xảy ra lỗi bring-up và crash nhân (kernel crash).

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Kỹ sư mới bắt đầu phát triển driver Linux dựa trên Armv8-A hoặc có từ 1 đến 3 năm kinh nghiệm.

  • Nhà phát triển thực tế muốn học kiến trúc Armv8-A không phải dưới góc độ 'lý thuyết' mà dưới 'góc độ gỡ lỗi (debugging)'

  • Nhà phát triển cần phân tích các vấn đề như crash kernel, lỗi khởi động, lỗi Fault nhưng vẫn chưa biết nên bắt đầu tiếp cận từ đâu.

  • Kỹ sư hệ thống cần hiểu rõ cấu trúc kết nối giữa Firmware – Kernel – Driver.

  • Dành cho những ai muốn bước phá từ giai đoạn chỉ xem log sang giai đoạn phân tích luồng thực thi.

Cần biết trước khi bắt đầu?

  • Hệ điều hành

Đánh giá

Chưa có đủ đánh giá.
Hãy trở thành tác giả của một đánh giá giúp mọi người!

취소 및 환불 규정
챌린지는 지식공유자가 설정한 수업 최소 정원이 충족되지 않을 경우, 폐강 안내가 고지되며 결제 내역이 자동취소됩니다.

Khóa học khác của austinkim

Hãy khám phá các khóa học khác của giảng viên!

11.483.533 ₫