강의

멘토링

커뮤니티

Hardware

/

Embedded IoT

Học kiến trúc RISC-V thông qua debugging - Phần 2

Giải thích dễ hiểu và chi tiết các khái niệm cốt lõi cũng như các mẹo thực tế về RISC-V - kiến trúc CPU hiện đại dựa trên mã nguồn mở.

(5.0) 9 đánh giá

73 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

  • austinkim
cpu-architecture
cpu-architecture
cpu
cpu
riscv
riscv
cpu-architecture
cpu-architecture
cpu
cpu
riscv
riscv

Đánh giá từ những học viên đầu tiên

Đánh giá từ những học viên đầu tiên

5.0

5.0

mikeseohyungjin

31% đã tham gia

Là một lập trình viên đang làm việc, đây là một khóa học hữu ích và tốt chỉ tập trung vào những điều cốt lõi. Quá trình có thể thực hành thông qua trace32 những nội dung cần thiết phải biết để đạt đến trình độ chuyên gia là rất khó tìm trên toàn thế giới, và nó đã giúp ích rất nhiều cho tôi.

5.0

김준

100% đã tham gia

Đây là một bài giảng tuyệt vời, tôi có thể cảm nhận được sự trưởng thành đến từ kinh nghiệm thực tế tại hiện trường.

5.0

박정모

100% đã tham gia

Rất hữu ích.

Bạn sẽ nhận được điều này sau khi học.

  • Có thể trả lời và giải thích tốt các câu hỏi liên quan đến RISC-V trong phỏng vấn kỹ thuật.

  • Bạn có thể học được nguyên lý hoạt động của Exception, bộ điều khiển ngắt (Interrupt Controller) và Calling Convention - những tính năng cốt lõi tạo nên RISC-V.

  • Bạn có thể thực hành debug các chức năng như Exception, Interrupt Controller, Calling Convention bằng cách sử dụng chương trình mô phỏng TRACE32.

  • Bạn có thể hiểu được kiến trúc RISC-V được sử dụng như thế nào trong nhân hệ điều hành như nhân Linux.

  • Có thể phân tích mã khởi động của bootloader hoặc nhân Linux chạy trên nền tảng RISC-V.

1. Phát hành phiếu giảm giá 30% để kỷ niệm ra mắt khóa học RISC-V đầu tiên tại Hàn Quốc (100 người đăng ký đầu tiên).

Liên kết mã giảm giá: https://inf.run/C7qRb

2. Cập nhật khóa học mới nhất năm 2025

Chúng tôi đã bổ sung các bài giảng dưới đây với nội dung hữu ích về các tính năng của kiến trúc RISC-V mới nhất và có thể áp dụng ngay vào dự án thực tế.

  • Thêm phần 'Cơ chế hoạt động của Exception đồng bộ' (4 bài giảng) - 07/23 (2025)

Trong ngành phần mềm hệ thống hiện đại
đang nổi lên Kiến trúc RISC-V

Gần đây, kiến trúc CPU mã nguồn mở RISC-V đang nổi lên. Khi xem các bài báo hoặc tin tức liên quan đến IT, bạn có thể dễ dàng thấy những nội dung như sau:

  • Các công ty công nghệ lớn như nVidia, Intel và Qualcomm đang phát triển sản phẩm (chipset) dựa trên RISC-V.

  • Các công ty khởi nghiệp thiết kế nhiều loại chip sử dụng RISC-V đang ngày càng tăng lên trong nước, và tỷ trọng phát triển sản phẩm dựa trên thiết bị RISC-V đang ngày càng cao.

  • Khi thiết kế chip bán dẫn AI, kiến trúc CPU dựa trên RISC-V được sử dụng rất nhiều.

  • Dự kiến đến năm 2026 sẽ có 15 tỷ thiết bị được ra mắt dựa trên nền tảng RISC-V.

  • Các trường đại học (thiết kế bộ xử lý) đang tiến hành nhiều nghiên cứu khác nhau bằng cách sử dụng bộ công cụ có thể thiết kế CPU RISC-V.

Tỷ trọng các công ty phần mềm nhúng và hệ thống phát triển sản phẩm bằng cách sử dụng kiến trúc CPU RISC-V đang ngày càng tăng. Do đó, người tìm việc cũng cần phải chuẩn bị về RISC-V cho các buổi phỏng vấn kỹ thuật.

Bối cảnh tạo ra khóa học

Đối với người mới bắt đầu, kiến trúc RISC-V khá khó học. Lý do như sau:

  • Không biết nội dung nào là quan trọng trong số lượng khổng lồ các thành phần cấu tạo nên RISC-V

  • Không biết tính năng nào trong các nội dung cấu thành RISC-V được sử dụng trong dự án thực tế

  • Rất khó hiểu ngay lập tức dù có đọc tài liệu đặc tả RISC-V chăm chỉ đến đâu


  • Khó hiểu ý nghĩa của chính các thuật ngữ giải thích về RISC-V


Thực tế là tài liệu liên quan đến kiến trúc RISC-V không đầy đủ so với kiến trúc Arm và thiếu tài liệu giải thích RISC-V một cách cụ thể và dễ hiểu. Khóa học này được tạo ra nhằm giải quyết những khó khăn mà các lập trình viên phần mềm hệ thống, bao gồm cả lập trình viên mới, gặp phải trong quá trình học RISC-V.

Cấu trúc khóa học và lộ trình khóa học Phần 1, Phần 3

Khóa học này đề cập đến nội dung phần 2 trong danh sách toàn bộ các khóa học về RISC-V, tập trung vào các chức năng cốt lõi của RISC-V.

Bạn có thể xem toàn bộ khóa học về kiến trúc RISC-V trong lộ trình - khóa học 'Kiến trúc RISC-V dành cho nhà phát triển phần mềm hệ thống'.

Điểm khác biệt cốt lõi của khóa học

1. Debug kiến trúc RISC-V bằng chương trình mô phỏng TRACE32 (dùng cho giáo dục)

Con đường tắt để học kiến trúc RISC-V (thanh ghi, lệnh assembly, chế độ Privilege) là gì? Đó chính là phương pháp thực hành debug trực tiếp.

Khi tham gia khóa học này, bạn có thể tải chương trình mô phỏng TRACE32 dùng cho giáo dục từ 'Tài liệu khóa học Inflearn' và trực tiếp sử dụng chương trình mô phỏng TRACE32 để thực hành về thanh ghi, lệnh assembly và chế độ Privilege của kiến trúc RISC-V.

Xin lưu ý rằng trình gỡ lỗi TRACE32 và các chương trình liên quan được sử dụng rộng rãi trong toàn bộ quá trình phát triển phần mềm hệ thống. Chương trình TRACE32 yêu cầu giấy phép để có thể chạy.

2. Cung cấp 5 bản dump bộ nhớ kernel được trích xuất từ board RISC-V

Năng lực quan trọng nhất được yêu cầu trong quá trình phát triển phần mềm hệ thống là khả năng giải quyết vấn đề. Trong đó, năng lực phân tích và giải quyết các vấn đề crash là cần thiết nhất. Trong khóa học này, chúng ta sẽ tiến hành thực hành debug về exception và calling convention bằng cách debug 5 bản memory dump kernel crash được trích xuất từ Vision-Five 2, một trong những board RISC-V phổ biến nhất. Những người tham gia khóa học có thể tải xuống chương trình TRACE32 cùng với 5 bản memory dump để trực tiếp debug exception và calling convention.

3. Giải thích dễ hiểu với nội dung cốt lõi được tuyển chọn

Đối với người mới bắt đầu, khi học RISC-V thường có xu hướng tìm kiếm và phân tích tài liệu tham khảo đầu tiên, nhưng từ góc độ người mới, rất khó để nắm bắt được nên học nội dung nào của RISC-V trước tiên. Bởi vì khó biết được nên học tốt cái gì trước. Trong khóa học này, chúng tôi sẽ tuyển chọn và giải thích những nội dung có thể áp dụng vào thực tế, những nội dung nhất định phải nắm vững. Ví dụ, chúng tôi sẽ mở memory dump và kernel log nhận được từ thiết bị dựa trên RISC-V để giải thích các thanh ghi hoặc lệnh assembly một cách dễ hiểu và chi tiết.

4. Giải thích bằng các ví dụ cụ thể kèm theo phần mềm và stack

RISC-V chủ yếu được học bởi những người muốn phát triển tốt phần mềm hệ thống hoặc muốn bước vào lĩnh vực này. Trong khóa học này, chúng tôi sẽ giải thích cách RISC-V được ứng dụng trong các dự án thực tế thông qua nhiều ví dụ đa dạng.

  • Phần mềm được thực thi như thế nào trong hệ thống RISC-V

  • Hệ thống RISC-V khởi động qua quy trình như thế nào

  • Cách thực hiện debug và reverse engineering trên hệ thống RISC-V

Nếu tham gia khóa học này, bạn có thể nhanh chóng nắm bắt được cảm giác thực chiến một cách tự nhiên cùng với nội dung về kiến trúc RISC-V.

5. Giải thích RISC-V so sánh với kiến trúc Arm

Nhìn vào hệ sinh thái của ngành phần mềm hệ thống, cho đến năm 2025, hệ sinh thái của ngành nhúng và chipset được cấu thành xoay quanh kiến trúc Arm. Nhiều nhà phát triển phần mềm hệ thống đang quen thuộc với bộ vi xử lý Arm hoặc kiến trúc Arm. Trong khóa học này, chúng tôi sẽ giải thích các khái niệm cốt lõi của RISC-V cùng với kiến trúc Arm.

  • Các loại exception và cách xử lý

  • Cấu trúc và phương thức xử lý của bộ điều khiển ngắt

  • Cách xử lý Calling Convention (các thanh ghi được sử dụng và các lệnh assembly liên quan)

Giảng viên là tác giả của sách về kiến trúc Arm, nên có thể giải thích RISC-V tốt hơn ai hết thông qua việc so sánh với kiến trúc Arm.

Nội dung bạn sẽ học 📕

Giải thích chi tiết khái niệm cơ bản về exception và trình bày dễ hiểu các tính năng (chức năng) cốt lõi của exception được định nghĩa trong kiến trúc RISC-V.

Giải thích luồng thực thi của exception - một tính năng cốt lõi của kiến trúc RISC-V. Đồng thời giải thích chi tiết cách xử lý exception trong hệ thống được cấu thành từ machine mode và user mode.

Giải thích mã ngoại lệ (Exception code) - biểu thị nguyên nhân gây ra ngoại lệ được định nghĩa trong kiến trúc RISC-V, đồng thời giải thích luồng xử lý ngoại lệ khi xảy ra memory abort.

Giải thích chi tiết luồng thực thi khi xảy ra exception và crash từ góc độ phát triển phần mềm.

Phân tích từng dòng lệnh assembly để giải thích luồng xử lý exception được kích hoạt như thế nào. Đồng thời giải thích cách xử lý exception trên stack khi nó được kích hoạt.

Thực hành exception bằng cách thực thi các lệnh assembly với chương trình thực hành debug T32. Giải thích chi tiết các thanh ghi CSR (scause, mcause) nào thay đổi khi exception được kích hoạt.

Giải thích chi tiết về exception handler được xử lý trong nhân Linux trong khi thực hành gây ra exception bằng chương trình TRACE32.

Phân tích memory dump nhận được từ board dựa trên RISC-V, đồng thời giải thích cách thức hoạt động của exception trong kiến trúc RISC-V: phân tích kernel log và phân tích call stack.

Thực hành debug bảng trang (page table) bằng chương trình TRACE32. Thông qua đó, xác định cụ thể nguyên nhân gây ra exception.

Giải thích về phương thức hoạt động cơ bản của bộ điều khiển ngắt được định nghĩa trong kiến trúc RISC-V. Trình bày cấu trúc của PLIC và CLIC một cách dễ hiểu.

Xem xét mã exception liên quan đến interrupt và giải thích cấu trúc của PLIC (Platform Level Interrupt Controller).

Giải thích về các thành phần phần cứng cốt lõi cấu thành nên PLIC và giải thích dễ hiểu về các thanh ghi CSR điều khiển PLIC.

Giải thích về Calling Convention (quy ước gọi hàm) được giới thiệu trong kiến trúc RISC-V và xem xét các thanh ghi hỗ trợ Calling Convention.

Giải thích bức tranh tổng thể về cách xử lý các tham số được truyền vào hàm.

Phân tích các lệnh assembly hỗ trợ Calling convention (quy ước gọi hàm) của kiến trúc RISC-V. Ngoài ra còn phân tích các lệnh assembly ví dụ - phân tích lệnh c.sdsp

Phân tích lệnh assembly hỗ trợ Calling convention (quy ước gọi hàm) của kiến trúc RISC-V. Ngoài ra còn phân tích các lệnh assembly ví dụ - Phân tích lệnh c.ldsp

Phân tích các lệnh assembly hỗ trợ Calling convention (quy ước gọi hàm) của kiến trúc RISC-V. Ngoài ra, cũng phân tích các lệnh assembly ví dụ - Phân tích lệnh c.ldsp


Thực hành phục hồi call stack bị hỏng bằng công cụ debug TRACE32.


Thực hành phân tích memory dump gây ra bởi stack overflow bằng TRACE32 debugging.


Dựa trên kinh nghiệm viết sách/giảng dạy
Sâu sắc và chi tiết hơn bất kỳ ai!

Trong lĩnh vực phần mềm hệ thống tại Hàn Quốc, chưa từng có tiền lệ! Tác giả của các cuốn sách về 'Kiến trúc Arm (Armv8-A, Armv7-A)' và 'Nhân Linux' (cả 2 cuốn sách đều được chọn là Sách Xuất sắc của Viện Hàn lâm Hàn Quốc), đồng thời là người đầu tiên tại Hàn Quốc xuất bản cuốn sách "Reverse Engineering Armv8-A Systems" (tiếng Anh) thông qua nhà xuất bản nước ngoài (Packt), là một tác giả toàn cầu. Hơn hết, là một nhà phát triển đang làm việc trong ngành, am hiểu nhất về xu hướng phần mềm hệ thống mới nhất (xe điện, chất bán dẫn hệ thống - phần mềm hệ thống). Đồng thời cũng là một nhà giáo dục 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.

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

  • Tác giả của 'Cấu trúc và Nguyên lý Kiến trúc Arm cho Phát triển Phần mềm Hệ thống' (Giải thưởng Sách Xuất sắc của Viện Hàn lâm Hàn Quốc năm 2024)

  • Tác giả cuốn 'Cấu trúc và Nguyên lý của Nhân Linux thông qua Gỡ lỗi' (Giải thưởng Sách Xuất sắc của Viện Hàn lâm Hàn Quốc năm 2021)

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

  • Tháng 6 năm 2022, Hội nghị Khoa học Máy tính Hàn Quốc (KCC2022) - Trình bày Tutorial [Chinh phục Linux Kernel bằng ftrace]

  • Giảng viên nội bộ LG Electronics về 'Linux Kernel' và 'Kiến trúc Armv8' (bao gồm các nhà phát triển trong nước và nước ngoài) - (2020~2024)

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

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

  • Nhà phát triển junior muốn nâng cao năng lực trong lĩnh vực phần mềm hệ thống bao gồm bán dẫn hệ thống (fabless), lĩnh vực xe điện (tự lái, infotainment)

  • Sinh viên chuẩn bị việc làm muốn phát triển phần mềm hệ thống trong lĩnh vực bán dẫn hệ thống (fabless) và xe điện

  • Nhà phát triển phần mềm hệ thống (bán dẫn hệ thống, xe điện) muốn tìm hiểu cách debug trong thực tế bằng cách tận dụng các tính năng của kiến trúc RISC-V

  • Lập trình viên từ các lĩnh vực khác muốn chuyển đổi sự nghiệp sang lĩnh vực phần mềm hệ thống

  • Sinh viên đại học có mục tiêu theo học cao học trong lĩnh vực phần mềm hệ thống (bộ nhớ, hệ thống tệp, hệ điều hành)

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

  • Kiến trúc máy tính

  • Ngôn ngữ C

  • Hệ điều hành

Xin chào
Đây là

6,220

Học viên

233

Đánh giá

93

Trả lời

4.9

Xếp hạng

22

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)

Là tác giả vô tiền khoáng hậu trong lĩnh vực phần mềm hệ thống tại Hàn Quốc, người đã viết các cuốn 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 bình 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 tiếng Anh "Reverse Engineering Armv8-A Systems" 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.

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

  • 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 'Programmers Dev Course: Chuyên gia Hệ thống Linux và Kernel'

  • Tháng 6 năm 2022, Hội nghị Tổng hợp Khoa học Máy tính Hàn Quốc (KCC2022) - Thuyết trình hướng dẫn [Chinh phục Linux Kernel bằng ftrace]

  • Giảng viên nội bộ của LG Electronics về 'Linux Kernel' và 'Kiến trúc Armv8' (bao gồm các nhà phát triển trong và ngoài nước) - (2020~Hiện tại)

Tôi có thể tự tin khẳng định rằng mình là một giảng viên có khả năng giải thích về Linux Kernel 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ệ giảng dạy: 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

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

Tất cả

91 bài giảng ∙ (11giờ 33phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

9 đánh giá

5.0

9 đánh giá

  • heecheolsong님의 프로필 이미지
    heecheolsong

    Đánh giá 19

    Đánh giá trung bình 5.0

    5

    31% đã tham gia

    • mist14093016님의 프로필 이미지
      mist14093016

      Đánh giá 5

      Đánh giá trung bình 5.0

      5

      31% đã tham gia

      • chungwoopark1091님의 프로필 이미지
        chungwoopark1091

        Đánh giá 2

        Đánh giá trung bình 5.0

        5

        31% đã tham gia

        • dlee8103님의 프로필 이미지
          dlee8103

          Đánh giá 2

          Đánh giá trung bình 5.0

          5

          100% đã tham gia

          • mikeseohyungjin5975님의 프로필 이미지
            mikeseohyungjin5975

            Đánh giá 4

            Đánh giá trung bình 5.0

            Đã chỉnh sửa

            5

            31% đã tham gia

            Là một lập trình viên đang làm việc, đây là một khóa học hữu ích và tốt chỉ tập trung vào những điều cốt lõi. Quá trình có thể thực hành thông qua trace32 những nội dung cần thiết phải biết để đạt đến trình độ chuyên gia là rất khó tìm trên toàn thế giới, và nó đã giúp ích rất nhiều cho tôi.

            2.498.152 ₫

            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!

            Khóa học tương tự

            Khám phá các khóa học khác trong cùng lĩnh vực!