Danh mục

Tài liệu Lập trình hệ thống Chương 2

Số trang: 15      Loại file: pdf      Dung lượng: 322.38 KB      Lượt xem: 16      Lượt tải: 0    
10.10.2023

Xem trước 2 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Tài liệu Lập trình hệ thốngChương 2Chương 2 NGẮT VÀ SỰ KIỆN1. Khái niệmNgắt (interrupt) là quá trình dừng chương trình chính đang chạy để ưu tiên thực hiện một chương trình khác, chương trình này được gọi là chương trình phục vụ ngắt (ISR – Interrupt Service Routine). ISR hoàn toàn giống với một chương trình bình thường trên máy tính, nghĩa là nó có khả năng truy xuất đến tất cả các lệnh ngôn ngữ máy của µP....
Nội dung trích xuất từ tài liệu:
Tài liệu Lập trình hệ thống Chương 2 Tài liệu Lập trình hệ thống Chương 2 Chương 2 NGẮT VÀ SỰ KIỆN 1. Khái niệm Ngắt (interrupt) là quá trình dừng chương trình chính đang chạy để ưu tiên thực hiệnmột chương trình khác, chương trình này được gọi là chương trình phục vụ ngắt (ISR –Interrupt Service Routine). ISR hoàn toàn giống với một chương trình bình thường trên máytính, nghĩa là nó có khả năng truy xuất đến tất cả các lệnh ngôn ngữ máy của µP. Tuy nhiêncuối ISR sẽ kết thúc bằng lệnh IRET (Interrupt Return) để µP tiếp tục thực hiện lệnh đã kếtthúc trước đây. Các nguyên nhân dẫn đến ngắt là: - Bản thân chương trình đang thực hiện bị lỗi, ví dụ như: chia cho 0, … - Do tác động của thiết bị ngoại vi, ví dụ như: thực hiện lệnh in nhưng máy in lỗi, ghi dữ liệu vào đĩa nhưng không có đĩa, … - Do lập trình viên chủ động gọi các ngắt có sẵn. Một cách đơn giản, chúng ta có thể xem ngắt như là quá trình gọi chương trình connhưng các chương trình con này được tạo ra sẵn trong máy tính và quá trình gọi này có thểxảy ra tại thời điểm không xác định trước. Sự kiện (Event) là một tác động lên một đối tượng trong môi trường Windows. Khicó một sự kiện xảy ra, Windows sẽ gởi thông điệp (message) đến đối tượng. Các sự kiệnthường xảy ra là: - Sự kiện chuột: Click, Double Click, … - Sự kiện bàn phím: nhấn phím, nhả phím, … - Sự kiện cửa sổ: Activate, Load, Unload, … 2. Các loại ngắt và bảng vector ngắt Quá trình ngắt có thể mô tả như sau: Chương trình chính ISR Lưu trữ các thanh ghi cần thiết … Khôi phục các thanh ghi Quay về chương trình chính (IRET) Hình 2.1 – Quá trình thực hiện ngắtPhạm Hùng Kim Khánh Trang 34Tài liệu Lập trình hệ thống Chương 2 Trong các quá trình ngắt, ta phân biệt thành 2 loại: ngắt cứng và ngắt mềm. Ngắtmềm là ngắt được gọi bằng một lệnh trong chương trình ngôn ngữ máy. Ngắt mềm đượcthục hiện trên hợp ngữ thông qua lệnh INT. Đối với các ngôn ngữ bậc cao hơn, vẫn chophép thực hiện gọi ngắt nhưng phải được biên dịch thành lệnh INT trong hợp ngữ rồi mờithực hiện. Khác với ngắt mềm, ngắt cứng không được khởi động bên trong máy tính mà do cáclinh kiện điện tử tác đông lên hệ thống. Ngắt cứng cũng được chia thành 2 loại: ngắt cheđược và ngắt không che được. Ngắt che được là ngắt có thể cho phép hay không cho phépthực thi bằng phần mềm thông qua cờ ngắt IF (Interrupt Flag): lệnh CLI (Clear InterruptFlag) sẽ cấm ngắt và lệnh STI (Set Interrupt Flag) sẽ cho phép các ngắt này hoạt động. Các loại ngắt khác nhau có thể mô tả như sau: Ngắt Ngắt mềm Ngắt cứng Ngắt do người Ngắt hệ thống Trong Ngoài sử dụng Không HĐH BIOS Che được che được Hình 2.2 – Các loại ngắt Khi thực hiện lệnh gọi một ngắt nào đó, chương trình con phục vụ cho ngắt sẽ đượcgọi. Để thực hiện các ngắt tương ứng, địa chỉ thực hiện các chương trình con phục vụ ngắtđược đặt trong một bảng, gọi là bảng vector ngắt. Bảng vector ngắt gồm có 256 phần tử, mỗi phần tử gồm 4 byte ứng với 256 ngắt (từngắt 0 đến ngắt 0FFh). Mỗi phần tử trong bảng vector ngắt chứa 2 địa chỉ: địa chỉ thanh ghiđoạn đưa vào CS và địa chỉ offset của chương trình phục vụ ngắt đưa vào IP.Phạm Hùng Kim Khánh Trang 35Tài liệu Lập trình hệ thống Chương 2 Bảng vector ngắt có thể mô tả như sau: Địa chỉ Địa chỉ ISR Số thứ tự ngắt 0000h:0000h CS 0 0000h:0002h IP 0000h:0004h CS ...

Tài liệu được xem nhiều: