Embedded Linux - device driver

Khóa học chuyên lập trình device driver trên embedded Linux (không phải IOT). Học viên sau khoá học sẽ lập trình, cấu hình, biên dịch hệ điều hành Linux riêng cho từng bo mạch thiết bị. Các công ty như Samsung, LG, Vinsmart, Viettel, Fsoft, Toshiba, Panasonic…

Cuối khoá, học viên sẽ được học cách sử dụng Yocto để xây dựng hệ thống build system cho dự án embedded Linux.

Khoá học này yêu cầu nhiều thời gian tự thực hành trên bo mạch nhúng.

YÊU CẦU

  1. Học viên đã nắm vững kiến thức về kiến trúc micro controller, cách lập trình vi điều khiển cho 1 số module đơn giản như watchdog, gpio, spi, uart,…
  2. Lập trình C nâng cao, tập trung vào các kỹ thuật thao tác bit, macro, pointer, function pointer, struct.
Giáo trình
0. Cấu trúc của kernel module
  • Cách kernel module tương tác với hệ điều hành.
  • Lập trình hello world kernel module.
  • Lập trình kernel module để bật tắt đèn led.
1. Character driver
  • Cấu trúc của character driver.
  • Template chung cho tất cả các loại driver trên Linux.
  • Lập trình character driver để điều khiển bật tắt led và điều khiển button.
  • Lập trình character driver để điều khiển xe ô tô tự lái, máy pha chế đồ uống.
2. makefile, automake và autoconfig
  • Giới thiệu về makefile, automake và autoconfig.
  • Thêm mới 1 built-in driver cho Linux.
3. Giao tiếp shared memory
  • Kỹ thuật giao tiếp thông qua shared memory.
  • Cách chia sẻ bộ nhớ giữa driver và application.
  • Lập trình character driver và application giao tiếp với nhau thông qua 2 phương pháp: Shared memory và device file. Test tốc độ và rút ra kết luận.
4. Virtual memory
  • Giới thiệu về virtual memory. (Học viên về nhà tự tìm hiểu thêm về page table, process address space, bảng TLB)
  • Giới thiệu về system call.
  • Lập trình kernel module để swap system call SYS_READ, từ đó thay đổi nội dung đọc được của 1 file đối với các user khác nhau.
5. Device tree
  • Giới thiệu về device tree.
  • Lập trình character driver sử dụng device tree.
6. Watchdog Driver
  • Giới thiệu về template của watchdog driver.
  • Lập trình watchdog driver.
7. GPIO controller driver
  • Giới thiệu về GPIO controller driver.
  • Lập trình GPIO controller driver.
8. Ethernet driver và Linux network stack
  • Giới thiệu về ethernet driver và Linux network stack.
  • Lập trình ethernet driver.
9. IPC
  • Giới thiệu về IPC và các phương pháp giao tiếp giữa application với driver.
  • Thực hành lập trình với netlink.
10. Netfilter và Iptable
  • Giới thiệu về Netfilter và Iptable.
  • Lập trình kernel module thao tác với netfilter để thay đổi luồng một gói tin.
11. Wifi Driver
  • Giới thiệu về wifi stack và template của wifi driver.
  • Lập trình driver cho wifi.
12. uboot và booting flow
  • Giới thiệu về uboot và booting flow của kernel.
  • Lập trình thay đổi luồng boot trong uboot.
13. Yocto dựng hệ Linux nhúng tuỳ biến
  • Giới thiệu về Yocto, kiến trúc và cách sử dụng Yocto.
  • Thực hành build 1 project với Yocto.
14. Lập trình các layer trong Yocto
  • Giới thiệu về các layer, cách lập trình với Yocto.
  • Thực hành lập trình với Yocto để build thêm 1 packet cho hệ thống file system.
Gói học phí
Bạn có thắc mắc
Nhận hỗ trợ
Để lại thông tin, chúng tôi sẽ liên hệ với bạn
Đóng trọn gói
3800000đ
Học viên hoàn thành học phí trong một lần
FREE