Danh mục

Tài liệu Lập trình hệ thống - Chương 2: NGẮT VÀ SỰ KIỆN

Số trang: 15      Loại file: pdf      Dung lượng: 322.48 KB      Lượt xem: 13      Lượt tải: 0    
Thư viện của tui

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

Thông tin tài liệu:

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....
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: NGẮT VÀ SỰ KIỆNTà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 1 0000h:0006h IP 0000h:0008h CS 2 0000h:000Ah IP … … … 0000h:03FCh CS 255 0000h:03FEh IP Khi có một quá trình ngắt xảy ra, CPU sẽ tìm địa chỉ bắt đầu của chương trình ngắtđược chứa trong bảng vector ngắt theo số thự tự ngắt. Do một phần tử trong bảng vectorngắt chiếm 4 byte nên để tìm giá trị địa chỉ trong bảng vector ngắt, ta chỉ cần nhân số thứ tựngắt với 4. Danh sách các ngắt mô tả như sau: STT Địa chỉ Chức năng 00h 0000h – 0003h CPU: chia cho 0 01h 0004h – 000 ...

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