Đề lập trình nhúng cuối kì 2011
ĐỀ KIỂM TRA HỌC KỲ MÔN LẬP TRÌNH NHÚNG HK 1 – 2011/2012 Thời gian: 65 phút (SV được sử dụng tài liệu, làm bài ngay trên đề) (Đề thi có 6 trang) Câu 1: (3 đ) Cho sơ đồ sau: R 2 R D 4 L E D R 1 R D 1 L E D V C C R 2 R D 3 L E D V C C S W 1 1 2 U 1 A T 8 9 C 5 1 9 1 8 1 9 2 9 3 0 3 1 1 2 3 4 5 6 7 8 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 3 9 3 8 3 7 3 6 3 5 3 4 3 3 3 2 R S T X T A L 2 X T A L 1 P S E N A L E / P R O G E A / V P P P 1 . 0 P 1 . 1 P 1 . 2 P 1 . 3 P 1 . 4 P 1 . 5 P 1 . 6 P 1 . 7 P 2 . 0 / A 8 P 2 . 1 / A 9 P 2 . 2 / A 1 0 P 2 . 3 / A 1 1 P 2 . 4 / A 1 2 P 2 . 5 / A 1 3 P 2 . 6 / A 1 4 P 2 . 7 / A 1 5 P 3 . 0 / R X D P 3 . 1 / T X D P 3 . 2 / I N T 0 P 3 . 3 / I N T 1 P 3 . 4 / T 0 P 3 . 5 / T 1 P 3 . 6 / W R P 3 . 7 / R D P 0 . 0 / A D 0 P 0 . 1 / A D 1 P 0 . 2 / A D 2 P 0 . 3 / A D 3 P 0 . 4 / A D 4 P 0 . 5 / A D 5 P 0 . 6 / A D 6 P 0 . 7 / A D 7 D 2 L E D R 2 R R 2 R a) Vẽ máy trạng thái thực hiện công việc sau: Khi reset, LED D1 sáng, các LED còn lại tắt. Các LED lần lượt sáng theo thứ tự D1-D2-D3-D4-D1 … mỗi khi nhấn SW (không chống rung). LED chuyển trạng thái ngay khi SW nhấn xuống Họ và tên:…………………………………. MSSV:………………… Trang - 1 - Họ và tên:…………………………………. MSSV:………………… Trang - 2 - b) Viết chương trình C cho 8051 dựa trên máy trạng thái vừa thiết lập. Họ và tên:…………………………………. MSSV:………………… Trang - 3 - Câu 2: (3đ) Trong chương trình cho ARM cortex M3, gọi hàm process như sau: #include <stdio.h> extern int process(int a, int b, int c); int main() { int a, b, c, d; a = 1; b = 2; c = 3; d = process (a, b, c); return (0); } Hãy thực thi hàm process bằng assembly để tính phép tính: a + b – c . AREA asm_func, CODE, READONLY THUMB EXPORT process Họ và tên:…………………………………. MSSV:………………… Trang - 4 - Câu 3: (1đ) a) Nêu sự khác nhau cơ bản giữa pre-emptive kernel và non-preemptive kernel Câu 4: (1 đ)Trả lời các câu hỏi về FreeRTOS bằng cách chọn 1 câu trả lời đúng nhất Họ và tên:…………………………………. MSSV:………………… Trang - 5 - a) Số lượng queue nhỏ nhất được dùng trong chương trình: 0 1 b) Số lượng queue lớn nhất nhất được dùng trong chương trình 0 1 lớn hơn 1 nhưng bị giới hạn không giới hạn c) Số lượng tác vụ nhỏ nhất được dùng trong chương trình (kể cả idle): 0 1 2 d) Số lượng tác vụ lớn nhất nhất được dùng trong chương trình (kể cả idle) 1 lớn hơn 1 nhưng bị giới hạn không giới hạn Câu 5: (2đ) Giả sử có 3 tác vụ T1 với mức ưu tiên thấp, T2 và T3 có cùng mức ưu tiên cao hơn. Trả lời các câu hỏi sau bằng cách chọn câu trả lời đúng (có thể có nhiều hơn 1) a) Không có tác vụ nào bị block. Tác vụ nào sẽ được thực thi T0 T1 T2 b) Tác vụ idle có đuợc chạy không? Có Không c) Task T2 truy cập một queue rỗng (empty queue). Tác vụ nào sẽ đuợc thực thi T0 T1 T2 d) Những trường hợp nào có thể xảy ra với task T2? Khoanh tròn tất cả các trường hợp có thể có. Bị block mãi mãi Unblock sau 1 thời gian tối đa Block cho đến khi 1 tác vụ khác ghi vào queue Block cho đến khi task T2 ghi vào queue BM Điện Tử Cán bộ ra đề Họ và tên:…………………………………. MSSV:………………… Trang - 6 - . ĐỀ KIỂM TRA HỌC KỲ MÔN LẬP TRÌNH NHÚNG HK 1 – 2011/ 2012 Thời gian: 65 phút (SV được sử dụng tài liệu, làm bài ngay trên đề) (Đề thi có 6 trang) Câu 1: (3 đ) Cho. chương trình: 0 1 b) Số lượng queue lớn nhất nhất được dùng trong chương trình 0 1 lớn hơn 1 nhưng bị giới hạn không giới hạn c) Số lượng tác vụ nhỏ nhất được dùng trong chương trình (kể. Họ và tên:…………………………………. MSSV:………………… Trang - 2 - b) Viết chương trình C cho 8051 dựa trên máy trạng thái vừa thiết lập.