HAL (Hardware Abstraction Layer)

Một phần của tài liệu Bài giảng Hệ thống nhúng (2019): Phần 1 (Trang 75 - 76)

Để việc triển khai hệ điều hành thời gian thực trên các phần cứng khác nhau được dễ dàng hơn, cần có việc đặt ra các giao diện chuẩn cho việc lập trình. Khi lập trình viên chuyển sang một nền tảng (platform) mới, các giao diện lập trình này được giữ nguyên mặc dù phần cứng phía dưới thay đổi.

VD: Hai nền tảng khác nhau có thể có các bộ đếm khác nhau. Mỗi bộ đếm cần một phiên bản mã mới để khởi tạo và thiết lập cấu hình thiết bị. Nếu sử dụng HAL, giao diện lập trình sẽ không thay đổi mặc dùng cả phần cứng và phần mềm đều thay đổi.

HAL là một lớp phần mềm cung cấp một tập hợp các giao diện lập trình xác định, che đi cấu trúc phần cứng. HAL được thực thi bằng cách ảo hóa nên tảng phần cứng, làm cho các trình điều khiển có thể chuyển giữa các phần cứng khác nhau.

Phần mềm HAL giao tiếp với một thiết bị ngoại vi chuyên biệt được gọi là trình điều khiển thiết bị (device driver). Một trình điều khiển thiết bị cung cấp giao diện lập trình ứng dụng chuẩn (API) để đọc và ghi tới thiết bị ngoại vi đó.

Trên thực tế, khi phát triển các bo mạch nhúng, các hãng thường cung cấp gói phần mềm phát triển kèm theo (BSP). Các gói phần mềm cho việc phát triển này tương đương với HAL.

HAL thường hỗ trợ các thành phần phần cứng sau:

• CPU, cache, và MMU.

• Thiết lập bản đồ bộ nhớ.

• Hỗ trợ xử lý ngắt và các trường hợp đặc biệt.

• Các bộ đếm (Timers).

• Console của hệ thống.

• Quản lý giao diện bus.

• Quản lý nguồn.

Một phần của tài liệu Bài giảng Hệ thống nhúng (2019): Phần 1 (Trang 75 - 76)