XÂY DỰNG
HỆ THỐNG NHÚNG
CƠ BẢN
GV: Nguyễn Ngọc Tú
Email:
Bài 03: Các thành phần phần mềm hệ thống nhúng
NNTu
Hệ Thống Nhúng (Spring 2008)
2
Nội dung
Trình điều khiển thiết bị
Hệ điều hành nhúng
Middleware và các phần mềm ứng dụng
NNTu
Hệ Thống Nhúng (Spring 2008)
3
Trình Điều khiển thiết bị
Phần cứng yêu cầu một số kiểu khởi động và
quản lý
Giao tiếp trực tiếp và điều khiển thiết bị
Thuộc lớp phần mềm hệ thống
ªThư viện phần mềm
Khởi động phần cứng
Quản lý truy xuất phần cứng từ các lớp cao hơn
NNTu
Hệ Thống Nhúng (Spring 2008)
4
Trình Điều khiển thiết bị
Nằm giữa phần cứng và OS, MW, lớp ứng
dụng
Phần cứng
Kiến trúc tổng quát
NNTu
Hệ Thống Nhúng (Spring 2008)
7
Trình Điều khiển thiết bị
Kiến trúc tổng quát
Quản lý phần cứng tích hợp vào bo mạch
Các phần kiến trúc đặc biệt theo mã tùy thuộc vào BXL
(CPU) do mọi xử lý đều thông qua CPU
Quản lý bo mạch: không phụ thuộc vào BXL cụ thể nào
Æ có thể cấu hình cho các kiến trúc khác nhau
Bao gồm mã khởi tạo và quản lý tới các thành phần
khác của bo mạch:
BUS của bo: I2C, PCI, PCMCIA, …
Bộ nhớ ngoài chip: trình điều khiển, cache mức 2, Flash, …
I/O ngoài: Ethernet, RS-232, hiển thị, chuột, ….
NNTu
Hệ Thống Nhúng (Spring 2008)
8
Trình Điều khiển thiết bị
Phần cứng
Phần hệ thống
Phần mềm Ứng dụng
Trình ĐK Tổng quát
I/O
Trình ĐK Đặc biệt
BUS MEM Khác
RS232
I/O
SCI
Trình Điều khiển thiết bị
3 trạng thái mà phần cứng có thể tồn tại
không hoạt động (inactive)
Thiếu kết nối (disconnect): cần cài đặt
Không có nguồn: cần khởi động
Ẩn (disable): cần cho phép hoạt động (enable)
Bận (busy)
Đang bận xử lý vài kiểu dữ liệu
Yêu cầu vài kiểu, cơ chế “giải phóng”
Kết thúc thực hiện (finished)
Trạng thái đã kết thúc các công việc. Đang rảnh
Cho phép: khóa, đọc, ghi,…
NNTu
Hệ Thống Nhúng (Spring 2008)
11
Phần hệ thống
Phần điều khiển thiết bị
Trình Điều khiển thiết bị
Giao tiếp trực tiếp với phần cứng và mức cao
Phần cứng
Phần mềm Ứng dụng
Giao tiếp thiết bị
Giao tiếp mức cao
Giao tiếp thiết bị
Giao tiếp mức cao
NNTu
Hệ Thống Nhúng (Spring 2008)
12
Trình Điều khiển thiết bị
Phụ thuộc BXL chính, các kiểu khác nhau
thiết bị phần cứng ngoài, reset, lỗi nguồn, …
Đồng bộ:
Hoạt động liên quan tới chỉ thị lệnh: lệnh gọi hệ thống, lệnh
phạm luật, …
Ngắt:
Nguyên nhân BXL chính dừng thực thi luồng chỉ thị hiện
hành và bắt đầu tiến trình xử lý ngắt
NNTu
Hệ Thống Nhúng (Spring 2008)
16
Xử lý ngắt: các tác vụ
Các phần mềm xử lý ngắt và cơ chế xử lý ngắt cứng, bao gồm
trình điều khiển có ít nhất 4 tác vụ trong các hoạt đ6ọng sau
Khởi động xử lý ngắt (Startup)
Khởi tạo phần cứng ngắt qua mở nguồn, reset: điều khiển ngắt, bật
ngắt, …
Kết thúc (Shutdown)
Cấu hình phần cứng ngắt khi tắt nguồn
Ẩn xử lý ngắt
Cho phép phần mềm “cấm” hoạt động xử lý ngắt. Ngoại trừ các ngắt
NMI (Non-Maskable Interrupts)
Cho phép ngắt
Cho phép hoạt động trở lại xử lý ngắt đã ẩn
“Bảo dưỡng” bộ ngắt (Servicing)
Nội tại mã xử lý ngắt được thực thi sau khi gián đoạn luồng thực thi
chính Æ tăng tính phức tạp, các khả trình lồng vào nhau
NNTu
Hệ Thống Nhúng (Spring 2008)
17
Xử lý ngắt: các tác vụ
Khi xử lý ngắt mức cao hơn, các ngắt khác bị
“che”
non-maskable interrupt (NMI)
NNTu
Hệ Thống Nhúng (Spring 2008)
21
Xử lý ngắt: Chuyển ngữ cảnh
Khi ngắt xảy ra
Dừng chương trình hiện thời
Chuyển sang thực thi “interrupt service routine
(ISR)”hay bộ xử lý ngắt
Ngắn, nhanh
Các dịch vụ cho trình điều khiển
enabling/disabling
locking/unlocking
NNTu
Hệ Thống Nhúng (Spring 2008)
22
Xử lý ngắt: ví dụ
[1] p323
NNTu
Hệ Thống Nhúng (Spring 2008)
23
Trình Điều khiển: thiết bị nhớ
Các thao tác
Ví dụ quản lý
Khởi tạo điều khiển – kết nối
Khởi tạo ánh xạ
Khởi tạo MMU
NNTu