Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Linux Device Drivers - Communicating with Hardware

Trình điều khiển thiết bị Linux – Giao tiếp với phần cứng

Trình điều khiển thiết bị Linux – Giao tiếp với phần cứng

Lập trình nhân Linux cho thiết bị IO Mapped và Memory Mapped

4.2
(154 đánh giá)
1,751 học viên
Giảng viên
Linux Trainer
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 819.000đ -94%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
3.0 giờ video
84 bài giảng
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 31/05/2026

Bạn sẽ học được gì

IO Mapped IO
Memory Mapped IO
PCI
Module nhân cho bàn phím và RTC

Yêu cầu

Cần có khả năng viết/biên dịch/nạp/dỡ module nhân Linux Hello World

Đối tượng phù hợp

Lập trình viên nhân tò mò muốn học cách giao tiếp với phần cứng

Nội dung khóa học

9 phần • 84 bài giảng
1 Giới thiệu
2 Các thanh ghi trong thiết bị phần cứng
3 Làm thế nào phần cứng phân biệt giữa IO port và truy cập bộ nhớ
1 Cổng I/O của x86
2 Truy cập cổng I/O
3 Yêu cầu cổng I/O
4 Ví dụ module nhân Linux để yêu cầu cổng I/O
5 Tại sao giá trị đọc lại không giống giá trị ghi
6 Tại sao không phải tất cả cổng đều được liệt kê trong /proc/ioports
7 Tìm thông tin về ioport của bộ xử lý ở đâu
8 Module nhân Linux để bật loa
9 Danh sách cổng
1 Giới thiệu về RTC
2 Cổng và thanh ghi RTC Phần 1
3 Cổng và thanh ghi RTC Phần 2
4 Module nhân Linux giao tiếp với RTC
5 Xem qua trình điều khiển RTC trong nhân Linux
6 Đồng hồ phần cứng và phần mềm
7 Ví dụ module nhân Linux để cập nhật thời gian
1 Giới thiệu về bàn phím PC
2 Mã quét (Scancodes)
3 Cách tìm mã quét của một phím
4 Typematic
5 Lệnh Reset
6 Cổng I/O của bàn phím
7 Module nhân Linux gửi lệnh đến bộ điều khiển bàn phím
8 Module nhân Linux bật và tắt chuột
9 Module nhân Linux bật và tắt bàn phím
10 Module nhân Linux đọc byte lệnh sau khi tắt bàn phím
11 Thanh ghi trạng thái
12 Module nhân Linux in các phím đã gõ
13 Module nhân Linux bật đèn LED bàn phím
1 Giới thiệu
2 Lời gọi hệ thống ioperm
3 Thêm thông báo lỗi cho người dùng thường
4 Điều gì xảy ra khi bạn không gọi ioperm và truy cập cổng IO từ không gian người dùng
5 Truy cập thanh ghi RTC từ không gian người dùng
6 iopl
7 Truy cập thanh ghi RTC sau iopl
8 Gửi tổ hợp phím từ tiến trình không gian người dùng
9 Khởi động lại máy tính bằng cổng bàn phím
10 Khởi động lại máy tính bằng cổng PCI Reset
11 Bật và tắt loa
12 Bộ định thời 8254 và loa
13 /dev/port
1 Giới thiệu
2 Yêu cầu bộ nhớ IO
3 Truy cập bộ nhớ IO
4 Tại sao chúng ta không thể truy cập trực tiếp bộ nhớ IO
5 Ví dụ module nhân Linux gọi request mem region – trường hợp thất bại
6 Ví dụ module nhân Linux gọi request mem region – trường hợp thành công
7 Ví dụ module nhân Linux gọi ioremap và iounmap
8 Ví dụ module nhân Linux ghi vào bộ nhớ
9 Ví dụ module nhân Linux gọi ioread và iowrite
10 Bộ tạo số ngẫu nhiên phần cứng
11 Các thanh ghi trong bộ tạo số ngẫu nhiên phần cứng
12 Truy cập cổng dưới dạng bộ nhớ IO
13 Truy cập memory mapped IO từ không gian người dùng
14 CONFIG_STRICT_DEVMEM
15 Tiện ích devmem
16 Triển khai đơn giản tiện ích devmem bằng ngôn ngữ C
17 Mã cập nhật để in chuỗi
18 Cấu hình GPIO bằng devmem
19 RTC trên qemu arm
20 Đổ dữ liệu BIOS vào tệp tin
21 Ghi chuỗi vào RAM và đọc lại
1 Giới thiệu
2 Bảng điểm nhập SMBIOS
3 Phân tích bảng điểm nhập
4 dmidecode
5 biosdecode
1 Giới thiệu
2 Không gian địa chỉ PCI
3 Không gian cấu hình PCI
4 Cách truy cập các thanh ghi trong không gian cấu hình PCI
5 lspci
6 Truy cập không gian địa chỉ cấu hình từ module nhân Linux
7 Module nhân Linux in toàn bộ không gian địa chỉ
8 Điều gì xảy ra khi chúng ta cố gắng đọc một thiết bị không tồn tại
9 Các thanh ghi địa chỉ cơ sở (Base Address Register)
10 Địa chỉ cơ sở của thanh ghi địa chỉ cơ sở
11 Tìm dung lượng bộ nhớ mà thiết bị PCI sử dụng
12 Giới thiệu về PCI Express
1 Tải về

Giới thiệu khóa học

What you will learn in this course:

  • Two modes of communication with hardware - IO Mapped IO and Memory Mapped IO

  • Kernel Drivers/Modules for IO Mapped IO - Speaker, RTC, Keyboard

  • Kernel Drivers/Modules for Memory Mapped IO - Hardware Random Generator, GPIO, UART

  • Accessing IO Mapped IO and Memory Mapped IO from user space

  • PCI and SMBIOS

API's/Macros/Structures

  • inb, outb, inw, outw, inl, outl

  • inb_p, outb_p, inw_p, outw_p, inl_p, outl_p

  • struct resource, request_region, release_region

  • ioperm, iopl, geteuid

  • request_mem_region, release_mem_region, ioremap, iounmap, ioread8, ioread16, ioread32, iowrite8, iowrite16, iowrite32

  • ioport_map, ioport_unmap,mmap

Files:

/dev/port, /dev/mem, /proc/iomem, /proc/ioports

Commands

  • hwclock

  • date

  • showkey

  • hexdump

  • strings

  • dd

  • lspci

  • biosdecode

  • dmidecode

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học C Programming
Hiển thị tất cả khoá học Embedded Systems
Hiển thị tất cả khoá học Linux Kernel
Hiển thị tất cả khoá học Operating Systems
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊