WorksheetsUntitled Quiz
Total questions: 27
Worksheet time: 14mins
Chọn một API phù hợp điền vào chỗ trống trong câu lệnh sau để tạo một task trong hệ điều hành FreeRTOS: ____(vLedTask1, (signed portCHAR *) "LED_PD12", STACK_SIZE, NULL, 0, NULL);
vTaskDelete
QueueCreate
vTaskStartScheduler()
xTaskCreate
Hệ điều hành FreeRTOS là gì?
Hệ điều hành thời gian thực mã nguồn mở
Hệ điều hành mã nguồn đóng
Hệ điều hành thương mại
Hệ điều hành dành riêng cho một loại vi điều khiển
Trạng thái "Suspended" của một task trong FreeRTOS có nghĩa là gì?
Task đã hoàn thành
Task bị treo và chỉ trở lại khi được gọi hàm resume
Task đang đợi tài nguyên
Task đang thực thi
Task Idle trong FreeRTOS có chức năng gì?
Đảm bảo rằng bộ đếm chương trình luôn có giá trị khi không có task nào khác thực thi
Đảm bảo rằng CPU không bao giờ nghỉ
Thực hiện các công việc quan trọng nhất trong hệ thống
Xóa bộ nhớ RAM khi không sử dụng
Tính năng nổi bật của FreeRTOS là gì?
Có thể port (hỗ trợ) cho nhiều kiến trúc vi điều khiển
Không hỗ trợ truyền thông giữa các tác vụ
Dung lượng lớn và phức tạp
Không thể sử dụng cho ứng dụng thương mại
Trong FreeRTOS, trạng thái "Ready" của một task có nghĩa là gì?
Task không sẵn sàng chạy
Task đang thực thi
Task bị treo
Task đã sẵn sàng thực thi nhưng chưa được thực thi
Trạng thái "Running" của một task trong FreeRTOS có nghĩa là gì?
Task đã bị hủy
Task đang đợi tài nguyên
Task đã hoàn thành
Task đang chiếm quyền thực thi của bộ xử lý
Trạng thái "Blocked" của một task trong FreeRTOS có nghĩa là gì?
Task đã bị xóa
Task đang thực thi
Task đã bị treo
Task đang đợi một sự kiện hoặc tài nguyên
Nhân (Kernel) trong FreeRTOS có nhiệm vụ gì?
Thực hiện tất cả các nhiệm vụ cơ bản của hệ điều hành
Thực hiện chức năng định thời
Xử lý ngắt
Quản lý bộ nhớ ngoài
Hệ điều hành FreeRTOS được viết chủ yếu bằng ngôn ngữ lập trình nào?
Java
Python
C
C++
Khi thực hiện port hệ điều hành FreeRTOS lên vi điều khiển phải thực hiện thao tác nào sau đây?
Tạo ra ít nhất 2 tiến trình chạy đồng thời
Khai báo cấu hình chức năng cho các chân trên vi điều khiển
Các cài đặt tùy chỉnh để đảm bảo FreeRTOS hoạt động đúng trên vi điều khiển cụ thể như cấu hình kích thước ngăn xếp, kích thước vùng bộ nhớ động (heap size) và độ ưu tiên ngắt
Tạo ra một tiến trình Idle
Trong câu lệnh khai báo sau: #define portVIC_SYSIR2_REG (*(( volatile unsigned long *) 0xee000e20)) — từ khóa volatile xác định rằng vùng nhớ dành cho thanh ghi có thể như thế nào?
Được thay đổi bởi phần cứng bất cứ lúc nào
Được đọc dữ liệu bởi người lập trình
Được ghi dữ liệu bởi người lập trình
Không thể thay đổi bởi người lập trình
Tính đa nhiệm của hệ điều hành FreeRTOS được hiểu như thế nào?
Hỗ trợ nhiều thiết bị ngoại vi
Chỉ cho phép chạy một tác vụ tại một thời điểm
Cho phép xử lý ngắt đồng thời
Cho phép chạy nhiều tác vụ song song
Chọn từ khóa phù hợp điền vào chỗ trống trong câu lệnh sau để khai báo một task trong hệ điều hành FreeRTOS: ____ void vLedTask1(void *pvParameters);
double
static
int
return
Câu lệnh nào sau đây khởi tạo một task đúng cú pháp?
xTaskCreate(vLedTask1, (signed portCHAR *) "Task 1", STACK_SIZE, NULL, 0, NULL);
xTaskCreate(vLedTask1, (signed portCHAR *) "Task 1", NULL, 0, NULL);
xTaskCreate(vLedTask1, (signed portCHAR *) "Task 1", STACK_SIZE, NULL, 0, NULL);
xTaskCreate(vLedTask1, (signed portCHAR *) "Task 1", STACK_SIZE);
Cho câu lệnh khởi tạo một task như dưới đây, phát biểu nào sau đây là đúng? xTaskCreate(vLedTask1, (signed portCHAR *) "Task 1", STACK_SIZE, NULL, 0, NULL);
vLedTask1 là một con trỏ tới hàm cần thực thi
STACK_SIZE là kích thước bộ nhớ dành cho task
Câu lệnh trên để hủy task vLedTask1
Số 0 trong câu lệnh cho biết đây là task được thực thi đầu tiên
Một hệ điều hành thời gian thực khác với hệ điều hành thông thường ở điểm nào?
Không có tính tiên định
Không hỗ trợ đa nhiệm
Chỉ hỗ trợ một mức ưu tiên
Có tính tiên định và đáp ứng thời gian nghiêm ngặt
FreeRTOS hỗ trợ bao nhiêu mức ưu tiên cho các task?
Ba mức ưu tiên
Chỉ một mức ưu tiên duy nhất
Hai mức ưu tiên
Không giới hạn số mức ưu tiên
FreeRTOS phù hợp nhất với loại ứng dụng nào?
Ứng dụng desktop
Ứng dụng web
Ứng dụng những có sử dụng giao diện đồ họa
Ứng dụng những thời gian thực nhỏ
Khi thực hiện port hệ điều hành FreeRTOS lên vi điều khiển KHÔNG phải thực hiện thao tác nào sau đây?
Các hàm chân vào/ra của vi điều khiển
Cài đặt và cấu hình bộ định thời để kích hoạt bộ lập lịch (scheduler) của FreeRTOS
Các đoạn mã để quản lý các ngắt phần cứng và phần mềm, cũng như đảm bảo các ngắt này tương thích với việc chuyển đổi ngữ cảnh
Viết mã khởi tạo hệ thống và bộ nhớ, thiết lập môi trường cần thiết trước khi FreeRTOS bắt đầu chạy
Trong FreeRTOS, hàm nào được dùng để bắt đầu một task?
vTaskStart()
xTaskCreate()
createTask()
taskStart()
Cho hai Task vLedTask1 và vLedTask2 đã được tạo như dưới đây trong chương trình cho STM32F407:
xTaskCreate
vTaskStartScheduler()
xQueueCreate
vTaskDelete
Chọn cú pháp khai báo đúng của một Task trong FreeRTOS, nhận tham số thông qua con trỏ pvParameters.
static int vLEDTask1( void *pvParameters ){ /* các lệnh */ }
static void vLEDTask1( void *pvParameters ){ /* các lệnh */ }
void vLEDTask1( void pvParameters ){ /* các lệnh */ }
static void vLEDTask1( void pvParameters ){ /* các lệnh */ }
?
Bộ xử lý số thực
Bộ điều khiển ngắt NVIC
Đơn vị bảo vệ bộ nhớ
Timer hệ thống
hihihi ?
unsigned long – 16 bit
unsigned long – 32 bit
unsigned int – 32 bit
unsigned long – 64 bit
?
Bit 0
Bit 3
Bit 1
Bit 2
hahahah?
Bộ xử lý ngắt NVIC
Bộ xử lý số thực
Đơn vị bảo vệ bộ nhớ
Timer hệ thống
