Tải bản đầy đủ (.pdf) (58 trang)

Xây dựng hệ thống nhúng (phần 3) pptx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (634.65 KB, 58 trang )

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

×