Làm việc với hệ điều hành thời gian thực (FreeRTOS). Sử dụng Bộ lập lịch (Scheduler) theo thuật toán Preemptive Sử dụng ADC đo nhiệt độ, nồng độ cacbon, độ mặn. A realtime system is one in which the correctness of the system depends not only on the logical results, but also on the time at which the results are produced.
Trang 1LẬP TRÌNH HỆ THỐNG
Đại Học Bách Khoa Đà Nẵng- Khoa Điện tử Viễn thông
Trang 2LẬP TRÌNH HỆ THỐNG
LAB 4
2
Trang 3YÊU CẦU MỚI
Làm việc với hệ điều hành thời gian thực
(FreeRTOS).
Sử dụng Bộ lập lịch (Scheduler) theo thuật toán
Preemptive
Sử dụng ADC đo nhiệt độ, nồng độ cacbon, độ
mặn.
3
Trang 4(C) Copyright 2001, Chris Ling
Hệ điều hành FreeRTOS
✔ Định Nghĩa:
– A real-time system is one in which the correctness of the
system depends not only on the logical results, but also on the time at which the results are produced.
Trang 5(C) Copyright 2001, Chris Ling
Hệ điều hành FreeRTOS
✔ Chức năng:
• Lập lịch theo mức độ ưu tiên
• Quản lý truyền thông và đồng bộ giữa các Tác vụ hoặc giữa
Task và Interrupt
• Phân phối bộ nhớ động.
• Quản lý các thiết bị vào ra.
Trang 6(C) Copyright 2001, Chris Ling
Ưu điểm của FreeRTOS
• FreeRTOS có mã nguồn mở, lõi có thể tải miễn phí phù FreeRTOS có
hợp với những hệ nhúng thời gian thực nhỏ
• Hầu hết các code được viết bằng ngôn ngữ C nên nó có
tính phù hợp cao với nhiều nền khác nhau
Dung lượng nhỏ và có thể chạy trên những nền mà nhiều
hệ không chạy được
Trang 7(C) Copyright 2001, Chris Ling
Hệ điều hành FreeRTOS
✔ Task gồm có: tên, chức năng, giá trị ưu tiên, độ sâu stack, task handle (như kiểu cái móc để tác động), biến đầu vào
✔ FreeRTOS cung cấp các API có sẵn để quản lý tác vụ như
là tạo tác vụ (vTaskCreate()), hủy tác vụ (vTaskDelete())
Trang 8(C) Copyright 2001, Chris Ling
TASK
Trang 9(C) Copyright 2001, Chris Ling
TASK
• Running: Với ý nghĩa bộ xử lý đang thực hiện tác vụ
Với một bộ xử lý thì chúng ta chỉ chạy một tác vụ tại một thời điểm nhất định
• Ready: Với ý nghĩa một số tác vụ khác sẵn sàng chạy nếu
bộ xử lý rỗi
• Blocked: Với ý nghĩa tác vụ không sẵn sàng chạy kể cả
khi bộ xử lý trong trạng thái nghỉ - Idle Tác vụ ở trong trạng thái này vì chúng đợi một sự kiện bên ngoài tác
động để kích hoạt nó trở lại trạng thái sẵn sàng
Trang 10(C) Copyright 2001, Chris Ling
TASK
portBASE_TYPE xTaskCreate( pdTASK_CODE pvTaskCode,
const signed portCHAR * const pcName, unsigned portSHORT usStackDepth, void *pvParameters,
unsigned portBASE_TYPE uxPriority, xTaskHandle *pxCreatedTask
);
void vTaskDelete( xTaskHandle pxTask );
Trang 11(C) Copyright 2001, Chris Ling
Scheduling
Trang 1212
Trang 13(C) Copyright 2001, Chris Ling
USE CASE
Trang 14(C) Copyright 2001, Chris Ling
CLASS DIAGRAM
Trang 15THANK
YOU