Bài giảng Lập trình hệ nhúng: Chương 5 - Phạm Ngọc Hưng
Số trang: 12
Loại file: pdf
Dung lượng: 621.11 KB
Lượt xem: 17
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng "Lập trình hệ nhúng - Chương 5: Lập trình device driver" trình bày các nội dung: Giới thiệu về Kernel Module, cơ chế xây dựng Device Driver, tìm hiểu, tùy chỉnh một số driver đã có, xây dựng usb device driver. Hi vọng đây sẽ là một tài liệu hữu ích dành cho các bạn sinh viên Công nghệ thông tin dùng làm tài liệu học tập và nghiên cứu.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hệ nhúng: Chương 5 - Phạm Ngọc Hưng Chương 5 Lập trình device driver Lập trình nhúng ARM-Linux 150 Nội dung 5.1. Giới thiệu về Kernel Module 5.2. Cơ chế x}y dựng Device Driver 5.3. Tìm hiểu, tùy chỉnh một số driver đ~ có 5.4. X}y dựng usb device driver Lập trình nhúng ARM-Linux 151 5.1. Kernel Module Hoạt động trên Kernel Space, có thể truy xuất tới c|c t{i nguyên của hệ thống Kernel Module cho phép thêm mới c|c module một c|ch linh hoạt, tr|nh việc phải biên dịch lại nh}n hệ điều h{nh Kernel Module l{ cơ chế hữu hiệu để ph|t triển c|c device driver Xem danh s|ch c|c module đang chạy: lsmod Lập trình nhúng ARM-Linux 152 Kernel Module C|c bước để thêm một kernel module v{o hệ thống • Viết m~ nguồn: chỉ sử dụng c|c thư viện được cung cấp bởi kernel, không sử dụng được c|c thư viện bên ngoài • Biên dịch m~ nguồn module • C{i đặt module: dùng lệnh insmod Tên_Module.ko • Gỡ module: dùng lệnh rmmod Tên_Module • Xem c|c thông tin log: sử dụng System Log Viewer Lập trình nhúng ARM-Linux 153 Mã nguồn kernel Module Lập trình nhúng ARM-Linux 154 Kernel Module Makefile obj-m += hello.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean Lập trình nhúng ARM-Linux 155 Liên kết Kernel Module Lập trình nhúng ARM-Linux 156 5.2. Device Driver Thêm c|c device driver theo cơ chế sử dụng Kernel Module C|c thao t|c thêm driver v{o hệ thống • Viết m~ nguồn (cấu trúc tương tự kernel Module). Đăng ký Major ID • Biên dịch m~ nguồn • C{i đặt sử dụng lệnh insmod • Sử dụng lệnh mknod để tạo device file trong /dev mknod [options] NAME Type [Major Minor] Lập trình nhúng ARM-Linux 157 Ví dụ: Hello Driver Lập trình nhúng ARM-Linux 158 Demo Lập trình nhúng ARM-Linux 159 Ví dụ Ví dụ 1: Chỉnh sửa driver sẵn có • Chỉnh sửa driver điều khiển led, bổ sung thêm hàm write để điều khiển trực tiếp tất cả c|c led đơn trên KIT Ví dụ 2: Tạo driver mới theo cơ chế kernel module Lập trình nhúng ARM-Linux 160 Thảo luận Lập trình nhúng ARM-Linux 161
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình hệ nhúng: Chương 5 - Phạm Ngọc Hưng Chương 5 Lập trình device driver Lập trình nhúng ARM-Linux 150 Nội dung 5.1. Giới thiệu về Kernel Module 5.2. Cơ chế x}y dựng Device Driver 5.3. Tìm hiểu, tùy chỉnh một số driver đ~ có 5.4. X}y dựng usb device driver Lập trình nhúng ARM-Linux 151 5.1. Kernel Module Hoạt động trên Kernel Space, có thể truy xuất tới c|c t{i nguyên của hệ thống Kernel Module cho phép thêm mới c|c module một c|ch linh hoạt, tr|nh việc phải biên dịch lại nh}n hệ điều h{nh Kernel Module l{ cơ chế hữu hiệu để ph|t triển c|c device driver Xem danh s|ch c|c module đang chạy: lsmod Lập trình nhúng ARM-Linux 152 Kernel Module C|c bước để thêm một kernel module v{o hệ thống • Viết m~ nguồn: chỉ sử dụng c|c thư viện được cung cấp bởi kernel, không sử dụng được c|c thư viện bên ngoài • Biên dịch m~ nguồn module • C{i đặt module: dùng lệnh insmod Tên_Module.ko • Gỡ module: dùng lệnh rmmod Tên_Module • Xem c|c thông tin log: sử dụng System Log Viewer Lập trình nhúng ARM-Linux 153 Mã nguồn kernel Module Lập trình nhúng ARM-Linux 154 Kernel Module Makefile obj-m += hello.o all: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) modules clean: make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean Lập trình nhúng ARM-Linux 155 Liên kết Kernel Module Lập trình nhúng ARM-Linux 156 5.2. Device Driver Thêm c|c device driver theo cơ chế sử dụng Kernel Module C|c thao t|c thêm driver v{o hệ thống • Viết m~ nguồn (cấu trúc tương tự kernel Module). Đăng ký Major ID • Biên dịch m~ nguồn • C{i đặt sử dụng lệnh insmod • Sử dụng lệnh mknod để tạo device file trong /dev mknod [options] NAME Type [Major Minor] Lập trình nhúng ARM-Linux 157 Ví dụ: Hello Driver Lập trình nhúng ARM-Linux 158 Demo Lập trình nhúng ARM-Linux 159 Ví dụ Ví dụ 1: Chỉnh sửa driver sẵn có • Chỉnh sửa driver điều khiển led, bổ sung thêm hàm write để điều khiển trực tiếp tất cả c|c led đơn trên KIT Ví dụ 2: Tạo driver mới theo cơ chế kernel module Lập trình nhúng ARM-Linux 160 Thảo luận Lập trình nhúng ARM-Linux 161
Tìm kiếm theo từ khóa liên quan:
Lập trình hệ nhúng Bài giảng Lập trình hệ nhúng Xây dựng Device Driver Cơ chế xây dựng Device Driver Tùy chỉnh Device Driver Kernel ModulTài liệu liên quan:
-
Bài giảng môn học Lập trình hệ nhúng - Phạm Văn Thuận
113 trang 25 0 0 -
Bài giảng Lập trình hệ nhúng: Chương 4 - Phạm Ngọc Hưng
26 trang 21 0 0 -
Bài giảng Lập trình hệ nhúng: Chương 7 - Phạm Ngọc Hưng
13 trang 21 0 0 -
Bài giảng Lập trình hệ nhúng: Chương 2 - Phạm Văn Thuận
27 trang 20 0 0 -
Bài giảng Lập trình hệ nhúng: Chương 2 - Phạm Ngọc Hưng
23 trang 20 0 0 -
Bài giảng Lập trình hệ nhúng: Chương 6 - Phạm Văn Thuận
19 trang 20 0 0 -
Bài giảng Hệ nhúng: Chương 5 - Phạm Văn Thuận
83 trang 18 0 0 -
Bài giảng Lập trình hệ nhúng: Chương 3 - Phạm Ngọc Hưng
44 trang 17 0 0 -
Bài giảng Hệ nhúng: Chương 3 - Phạm Văn Thuận
163 trang 17 0 0 -
Bài giảng Lập trình hệ nhúng: Chương 3 - Phạm Văn Thuận
11 trang 17 0 0