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
Phần hệ thống
Phần mềm Ứng dụng
Điều khiển thiết bị
Phần cứng
Phần hệ thống
Phần mềm Ứng dụng
Điều khiển thiết bị
Hệ điều hành / MiddleWare
NNTu
Hệ Thống Nhúng (Spring 2008)
5
Trình Điều khiển thiết bị
Thay đổi theo từng bo mạch
Phân loại theo mô hình Von Neumann:
có thể mô hình cho phần cứng lẫn phần mềm
Bao gồm cho
BXL chính: chức năng đặc biệt
Bộ nhớ -quản lý bộ nhớ
Khởi động BUS và giao tác
Khởi tạo và điều khiển I/O: mạng, đồ họa, thiết bị
nhập, lưu trữ, gỡ rối I/O, …
NNTu
Hệ Thống Nhúng (Spring 2008)
6
Trình Điều khiển thiết bị
Xem dét dạng đặc trưng
Kiến trúc đặc biệt
Quản lý phần cứng được tích hợp vào BXL chính
Bộ nhớ trong, quản lý bộ nhớ tích hợp (MMU), phần cứng
tính số thự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
TDM
…
EMA
I2C
…
IDM
M
L1 Cache
Interrupts
Timers
…
NNTu
Hệ Thống Nhúng (Spring 2008)
9
Trình Điều khiển thiết bị
Dù cho bất kỳ loại phần cứng, các trình điều khiển thiết bị đều có
tất cả hoặc vài tổ hợp các chức năng sau:
Khởi tạo (Startup): mở hay reset lại
Kết thúc (Shutdown): cấu hình phần cứng trạng thái tắt nguồn
Ẩn (Disable): cho phép phần mềm ẩn thiết bị
Cho phép (Enable): cho phép phần cứng hoạt động
Khóa (Acquire): cho phép sử dụng đơn (locking)
Giải phóng (Release): cho phép giải phóng phần cứng (unlock)
Đọc (Read): đọc dữ liệu từ phần cứng
Ghi (Write): ghi dữ liệu tới phần cứng
Cài đặt (Install): cho phép cài đặt phần cứng
Gỡ bỏ (Uninstall): cho phép “loại bỏ”phần cứng đã cài
NNTu
Hệ Thống Nhúng (Spring 2008)
10
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
của phần mềm có thể thực thi trong các chế
độ (mode) khác nhau:
Supervisory/Kernel mode:
Phần mềm hệ thống
Có nhiều quyền truy xuất và can thiệp sâu hơn
User mode:
Phần mềm ứng dụng
NNTu
Hệ Thống Nhúng (Spring 2008)
13
Trình điều khiển thiết bị
Trình Điều khiển-xử lý ngắt
Trình điều kiển thiết bị nhớ
Trình điều khiển BUS
Trình điều khiển IO
NNTu
Hệ Thống Nhúng (Spring 2008)
14
Trình Điều khiển: xử lý ngắt
Các tác vụ xử lý
Ưu tiên ngắt
Chuyển ngữ cảnh
Ví dụ
NNTu
Hệ Thống Nhúng (Spring 2008)
15
Trình Điều khiển: xử lý ngắt
Ngắt là tín hiệu được kích hoạt bởi vài sự kiện qua
đóthực thi luồng chỉ thị bởi BXL chính
Khởi tạo bất đồng bộ:
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ụ
Các tác vụ hiện thực ra sao phụ thuộc vào
các tiêu chuẩn sau
Kiểu, số, mức ưu tiên của các ngắt sẵn sàng
Xác định bởi cơ chế phần cứng ngắt trong chip hoặc bo
mạch
Ngắt được kích hoạt ra sao
Chính sách ngắt của các thành phần bên trong hệ
thống mà các ngắt được kích hoạt và dịch vụ
cung cấp bởi BXL chính
NNTu
Hệ Thống Nhúng (Spring 2008)
18
Xử lý ngắt: các dạng ngắt
3 kiểu ngắt chính
Ngắt mềm
Ngắt nội
Sai tính toán số học, gỡ rối, chỉ thị lỗi, …
Ngoại lệ, bẫy
Ngắt ngoại
IRQ (Interrupt Request Level)
Kích hoạt bởi cạnh hoặc mức
NNTu
Hệ Thống Nhúng (Spring 2008)
19
Xử lý ngắt: các dạng ngắt
NNTu
Hệ Thống Nhúng (Spring 2008)
20
Xử lý ngắt: Ưu tiên ngắt
Nhiều mức ngắt
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
Hệ Thống Nhúng (Spring 2008)
24
Thiết bị nhớ: Các thao tác
Thường bao gồm
Startup
Shutdown
Disable
Enable
Write
Read
NNTu
Hệ Thống Nhúng (Spring 2008)
25
Thiết bị nhớ:
Thường lưu trữ theo khối
Phân trang (pages), phân đoạn (segment)
Lưu trữ theo
Little endian
FF
AB FF
5512 ABFF
Big endian
FF
FF AB
1255 FFAB