1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu hệ điều hành thời gian thực trên vi điều khiển

82 21 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 82
Dung lượng 1,77 MB

Nội dung

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI LUẬN VĂN THẠC SĨ Nghiên cứu hệ điều hành thời gian thực vi điều khiển Vũ Trần Hải Nguyên hainguyen.bk191@gmail.com Ngành Cơ điện tử Giảng viên hướng dẫn: PGS TS Đỗ Văn Trường Viện: Cơ khí Chữ ký GVHD HÀ NỘI, 10/2020 CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ Họ tên tác giả luận văn: Vũ Trần Hải Nguyên Đề tài luận văn: Nghiên cứu hệ điều hành thời gian thực vi điều khiển Chuyên ngành: Cơ điện tử Mã số SV: CA180109 Tác giả, Người hướng dẫn khoa học Hội đồng chấm luận văn xác nhận tác giả sửa chữa, bổ sung luận văn theo biên họp Hội đồng ngày 31/10/2020 với nội dung sau: + Bổ sung thêm tài liệu tham khảo + Chỉnh sửa lỗi tả, dịch thuật + Làm rõ mục tiêu nghiên cứu, thông số kỹ thuật thực nghiệm để rõ ưu diểm, đóng góp luận văn Ngày Giáo viên hướng dẫn tháng năm 2020 Tác giả luận văn CHỦ TỊCH HỘI ĐỒNG Mẫu 1c Đề tài luận văn Đề tài tên tiếng Việt: “Nghiên cứu hệ điều hành thời gian thực vi điều khiển” Đề tài tên tiếng Anh: “Research Real-time operating system on microcontroller” Người hướng dẫn: PGS TS Đỗ Văn Trường Giáo viên hướng dẫn Ký ghi rõ họ tên Lời cảm ơn Trước tiên xin cảm ơn Giảng viên hướng dẫn luận văn - PGS TS Đỗ Văn Trường Cảm ơn cánh cửa đến văn phịng Phó Giáo sư rộng mở gặp phải rắc rối có câu hỏi vấn đề nghiên cứu Thầy ln cho phép tơi tự bày tỏ quan điểm dồng thời đưa nhận xét, góp ý, dẫn dắt tơi hướng suốt thời gian nghiên cứu, thực đề tài luận văn thạc sĩ Tôi xin cảm ơn thầy Viện Cơ Khí - Trương Đại học Bách khoa Hà Nội truyền đạt cho kiến thức chuyên sâu chuyên ngành suốt thời gian học tập để tơi có tảng kiến thức hỗ trợ lớn cho tơi q trình làm luận văn thạc sĩ Cuối cùng, xin gửi lời cảm ơn đến gia đình bạn bè ln hỗ trợ tơi khuyến khích liên tục suốt năm học tập qua trình nghiên cứu viết luận văn Thành tựu khơng thể có khơng có họ Xin chân thành cảm ơn! Tóm tắt luận văn 1.1 Vấn đề cần thực Hiện nay, biết đến hệ điều hành chủ yếu dành cho máy tính Tuy nhiên thực tế, có nhiều thiết bị điện tử có chạy dạng hệ điều hành rút gọn bên Ví dụ hệ điều hành thiết kế cho vi điều khiển sử dụng ứng dụng có yêu cầu thời gian đáp ứng nhanh, xác thời gian Trong đề tài luận văn tìm hiểu hệ điều hành thời gian thực (Real-time operation system-RTOS) nói chung FreeRTOS hệ điều hành đáp ứng yêu cầu nêu 1.2 Phương pháp thực 1.2.1 Tìm hiểu hệ điều hành Hệ điều hành (Operating System – OS) chương trình hay hệ chương trình hoạt động người sử dụng (user) phần cứng máy tính, đảm nhận nhiệm vụ chia sẻ tài nguyên phần cứng, điều khiển phối hợp việc sử dụng phần cứng cho ứng dụng khác 1.2.2 Tìm hiểu hệ điều hành thời gian thực Hệ điều hành thời gian thực (real-time operation system-RTOS) tạo để giúp ứng dụng thời gian thực xử lý liệu mà đệm gần khơng có độ trễ Khi đó, u cầu thời gian (kể thời gian trễ hệ điều hành) xử lý nhanh, thời gian tính tốn phần mười giây ngắn 1.2.3 Tìm hiểu chi tiết hệ điều hành FreeRTOS FreeRTOS nghiên cứu phát triển bơi Richard Barry, ông công bố hệ điều hành vào năm 2003 với tên ban đầu FRTOS07 FreeRTOS hệ điều hành thời gian thực hàng đầu thị trường, dành cho vi điều khiển vi xử lý nhỏ Ngày hệ điều hành phổ biên nhờ có độ tin cậy cao, khả truy cập dễ sử dụng, cộng đồng lập trình hệ thống nhúng sử dụng ủng hộ 1.3 Công cụ sử dụng Trong đề tài luận văn này, lựa chọn triển khai hệ điều hành FreeRTOS lên vi điều khiển ESP32 thơng qua trình dịch ARDUINO 1.4 Kết đề tài luận văn định hướng phát triển Đề tài luận văn đưa khái niệm hệ điều hành thời gian thực nói chung hay hệ điều hành FreeRTOS nói riêng, để từ giúp triển khai lên vi điều khiển ESP32 Tuy nhiên, đề tài luận văn đưa ví dụ đơn giản bó hẹp vi điều khiển định Trong tương lai nghiên cứu mở rộng cho nhiều vi điều khiển khác cho ứng dụng phức tạp Hà Nội, ngày tháng năm 2020 HỌC VIÊN Ký ghi rõ họ tên Mục lục Chương Giới thiệu hệ điều hành 1 Khái niệm hệ điều hành Phân loại hệ điều hành 2.1 Hệ điều hành xử lý theo lô đơn giản 2.2 Hệ điều hành xử lý theo lô đa chương 2.3 Hệ thống chia sẻ thời gian 2.4 Hệ thống phân tán 2.5 Hệ thống song song 2.6 Hệ thống xử lý thời gian thực Chức hệ điều hành 3.1 Quản lý tiến trình 3.2 Quản lý nhớ 3.3 Quản lý nhớ phụ 3.4 Quản lý hệ thống tập tin 3.5 Quản lý hệ thống vào 3.6 Hệ thống bảo vệ 3.7 Hệ thống thông dịch lệnh Tính chất hệ điều hành Chương Hệ điều hành thời gian thực Khái niệm hệ điều hành thời gian thực Cấu trúc hệ điều hành thời gian thực Các đặc điểm RTOS 10 Phân loại hệ điều hành thời gian thực 12 4.1 Hệ điều hành thời gian thực cho mục đích thương mại 12 4.2 Hệ điều hành thời gian thực với mục đích nghiên cứu 12 4.3 Hệ điều hành thời gian thực mở rộng tới Unix hệ điều hành khác 13 Một số hệ điều hành thời gian thực phổ biến 13 5.1 RTX51- Real Time Operating System 13 5.2 ARTX-Advanced Real Time Operating System 13 5.3 QNX/Neutrino 14 5.4 µC/OS 15 Chương Hệ điều hành thời gian thực FreeRTOS 16 FreeRTOS gì? 17 Những khái niệm hệ điều hành thời gian thực FreeRTOS 22 2.1 Tác vụ trạng thái tác vụ 22 2.2 Co-routines 24 2.3 Đa nhiệm (Multitasking) 26 2.4 Bộ lập lịch (Scheduler) 27 2.5 Chuyển đổi ngữ cảnh (Context Switching) 28 Giới thiệu số tính 29 3.1 Hàng đợi (queue) 29 3.2 Mutex 30 3.3 Semaphore nhị phân (Binary semaphores) 31 3.4 Đếm semaphore (Counting semaphores) 33 3.5 Bộ định thời phần mềm (Software Timer) 34 3.6 Nhóm kiện (Event group) 35 3.7 Chức Idle Hook 35 3.8 Tick Hook Function 36 Chương Hệ điều hành thời gian thực FreeRTOS vi điều khiển 37 Các file nguồn FreeRTOS: 37 1.1 port.c 38 1.2 heap_x.c 39 1.2.1 heap_1.c 39 1.2.2 heap_2.c 40 1.2.3 heap_3.c 41 1.2.4 heap_4.c 42 1.2.5 heap_5.c 42 1.3 Các tệp nguồn tùy chọn 43 Các header file cần khai báo vào project 43 2.1 FreeRTOS.h 44 2.2 task.h 44 2.2.1 Các API tạo task: 44 2.2.2 Các API điều khiển task: 45 2.2.3 Các API task tiện ích 45 2.2.4 Các API điều khiển RTOS kernel 48 2.3 list.h 48 2.4 croutine.h 49 2.5 portable.h 50 2.6 Các file tùy chọn 50 2.6.1 FreeRTOSconfig.h 50 2.6.2 projdef.h 51 2.6.3 queue.h 51 2.6.4 semphr.h 53 2.6.5 portmacro.h 54 Triển khai project cụ thể 55 3.1 Đặt vấn đề 55 3.2 Các thư viện API 55 3.3 Phương pháp lập trình 55 3.4 Giới thiệu hệ thống 55 3.5 Đặc tả hệ thống 56 3.5.1 Các thành phần 56 3.5.2 Mô tả hệ thống 56 3.5.3 Các kết nối mô tả 57 3.6 Thiết kế phần cứng 57 3.6.1 Sơ đồ nguyên lý 57 3.6.2 Layout 58 3.7 Giải thuật phần mềm 59 3.7.1 Trình phát triển biên dịch 59 3.7.2 Giải thuật 59 3.8 Code chương trình 60 3.9 Các bước thực 66 3.10 Kết thu 70 Kết luận 71 Tài liệu tham khảo 72 Danh mục hình vẽ bảng biểu Hình Sơ đồ hệ điều hành Hình Sơ đồ thời gian thực cứng thời gian thực mềm Hình Cấu trúc hệ điều hành thời gian thực 10 Hình Sơ đồ chức hệ điều hành thời gian thực 11 Hình Phương pháp Super Loop 16 Hình Hai phiên FreeRTOS 17 Hình Trạng thái tác vụ 23 Hình Trạng thái co-routine 26 Hình Cơ chế hoạt động lập lịch 27 Hình 10 Ví dụ chuyển đổi ngữ cảnh 29 Hình 11 Cơ chế hoạt động queue 30 Hình 12 Cơ chế hoạt động Mutex 31 Hình 13 Cơ chế hoạt động Binary semaphores 32 Hình 14 Cơ chế hoạt động Counting semaphores 33 Hình 15 Ví dụ dạng định thời phần mềm 34 Hình 16 Cấu trúc thư mục FreeRTOS 37 Hình 17 Hệ thống quạt điều hịa 55 Hình 18 Sơ đồ mô tả hệ thống 56 Hình 19 Sơ đồ nguyên lý 57 Hình 20 Layout 58 Hình 21 Layout 3D 58 Hình 22 Lưu đồ giải thuật 59 Hình 23 Cài đặt cấu hình Wifi điện thoại 67 Hình 24 Cài đặt cấu hình Wifi laptop 67 Hình 25 Mạch chạy thành cơng 68 Hình 26 Chip chưa nhận Wifi 68 Hình 27 Demo webserver 69 Bảng So sánh ARTX RTX 14 Bảng Những trình dịch hỗ trợ port 22 Bảng Liệt kê kết nối 57 Lời nói đầu Khi nhắc tới hệ điều hành hay nghĩ tới Windows, Ubuntu, MAC OS,… nhiên, năm gần đây, hệ thống điều khiển theo dạng thời gian thực hay với tên gọi quen thuộc mà thường hay thấy RTOS thu hút nhiều ý giới khoa học nghiên cứu khoa học máy tính Một số ứng dụng quan trọng hệ thống thời gian thực ứng dụng rộng rãi ứng dụng mà tài nguyên hạn chế có yêu cầu nghiêm ngặt thời gian, tính sẵn sàng khả tự kiểm sốt xác dây chuyền sản xuất tự động, robot, điều khiển khơng lưu, điều khiển thí nghiệm tự động, truyền thông, điều khiển giao thông, quân sự… Trên thị trường có nhiều hệ điều hành thời gian thực kể đến QNX, VxWork, FreeRTOS, embOS,… Trong đề tài luận văn tìm hiểu hệ điều hành thời gian thưc FreeRTOS, hệ điều hành có mã nguồn mở, hệ sinh thái rộng lớn, kết nối, lập trình, triển khai quản lý thiết bị công suất thấp cách bảo mật 3.6.2 Layout Hình 20 Layout Hình 21 Layout 3D 58 3.7 Giải thuật phần mềm 3.7.1 Trình phát triển biên dịch  Trình phát triển biên dịch Arduino IDE  Cấu trúc chương trình Arduino gồm: Khai báo thư viện biến, phẩn thực chương trình setup loop, hàm 3.7.2 Giải thuật  Dựa theo đặc tả chức chương trình, ta có lưu đồ giải thuật sau: Hình 22 Lưu đồ giải thuật 59 o Trong đó, task 1: Đọc cảm biến DHT11 hiển thị lên LCD, gửi cho task nội dung nhiệt độ độ ẩm qua Queue o Task 3: điều khiển relay qua nút nhấn, gửi cho task trạng thái relay o Task 2: nhận tin nhắn từ task đồng lên webserver  Cơ chế giao tiếp: message Queue  Mức độ ưu tiên: o Task = o Task 1, Task = 3.8 Code chương trình // Import required libraries #include "WiFi.h" #include "ESPAsyncWebServer.h" #include #include #include #include #include #include #include //Create Queue static QueueHandle_t xQueue3; static QueueHandle_t structQueue; TaskHandle_t TaskHandle_1; // handler for Task1 TaskHandle_t TaskHandle_2; // handler for Task2 TaskHandle_t TaskHandle_3; // handler for Task3 // Define a struct struct dht { int t; // gia tri nhiet int h; // gia tri am 60 }; // set the LCD number of columns and rows int lcdColumns = 16; int lcdRows = 2; // set LCD address, number of columns and rows // if you don't know your display address, run an I2C scanner sketch LiquidCrystal_I2C lcd(0x27, lcdColumns, lcdRows); // Replace with your network credentials const char* ssid = "123456"; const char* password = "12345678"; // Web Server HTTP Authentication credentials const char* http_username = "admin"; const char* http_password = "admin"; #define DHTPIN 27 #define DHTTYPE // Digital pin connected to the DHT sensor DHT11 // DHT 11 DHT dht(DHTPIN, DHTTYPE); // Adafruit_dht280 dht; // dht280 connect to ESP32 I2C (GPIO 21 = SDA, GPIO 22 = SCL) const int buttonPin = 18; // Pushbutton const int ledPin = 19; // Status LED const int output = 32; // Output socket int output_state = LOW; // current state of the output pin int ledstate = LOW; // current state of the led pin int buttonState; // current reading from the input pin int lastButtonState = LOW; // previous reading from the input pin //bool motionDetected = false; // flag variable to send motion alert message //bool clearMotionAlert = true; // clear last motion alert message from web page 61 unsigned long lastDebounceTime = 0; // the last time the output pin was toggled unsigned long debounceDelay = 50; // the debounce time; increase if the output flickers // Create AsyncWebServer object on port 80 AsyncWebServer server(80); AsyncEventSource events("/events"); void setup() { // Serial port for debugging purposes Serial.begin(115200); dht.begin(); Serial.println("dht"); // initialize the pushbutton pin as an input pinMode(buttonPin, INPUT); // initialize the LED pin as an output pinMode(ledPin, OUTPUT); // initialize the LED pin as an output pinMode(output, OUTPUT); // Connect to Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); Serial.println("Connecting to WiFi "); } // Print ESP32 Local IP Address Serial.println(WiFi.localIP()); // Route for root / web page server.on("/", HTTP_GET, [](AsyncWebServerRequest *request){ if(!request->authenticate(http_username, http_password)) return request->requestAuthentication(); request->send_P(200, "text/html", index_html, processor); }); server.on("/logged-out", HTTP_GET, [](AsyncWebServerRequest *request){ request->send_P(200, "text/html", logout_html, processor); }); server.on("/logout", HTTP_GET, [](AsyncWebServerRequest *request){ 62 request->send(401); }); // Send a GET request to control output socket /output?state= server.on("/output", HTTP_GET, [] (AsyncWebServerRequest *request) { if(!request->authenticate(http_username, http_password)) return request->requestAuthentication(); String inputMessage; // GET gpio and state value if (request->hasParam(PARAM_INPUT_1)) { inputMessage = request->getParam(PARAM_INPUT_1)->value(); digitalWrite(output, inputMessage.toInt()); request->send(200, "text/plain", "OK"); } request->send(200, "text/plain", "Failed"); }); // Send a GET request to control on board status LED /toggle server.on("/toggle", HTTP_GET, [] (AsyncWebServerRequest *request) { if(!request->authenticate(http_username, http_password)) return request->requestAuthentication(); ledstate = !ledstate; digitalWrite(ledPin, ledstate); request->send(200, "text/plain", "OK"); }); // Send a GET request to clear the "Motion Detected" message /clear-motion events.onConnect([](AsyncEventSourceClient *client){ if(client->lastId()){ Serial.printf("Client reconnected! Last message ID that it got is: %u\n", client->lastId()); } // send event with message "hello!", id current millis and set reconnect delay to second client->send("hello!",NULL,millis(),1000); }); server.addHandler(&events); // Start server server.begin(); // initialize LCD 63 lcd.init(); // turn on LCD backlight lcd.backlight(); lcd.setCursor(0, 0); // print static message lcd.print(WiFi.localIP()); // print IP delay(3000); lcd.clear(); //Khai bao Queue xQueue3 = xQueueCreate( 1, sizeof( char * ) ); structQueue = xQueueCreate(10, // Queue length sizeof(struct dht) // Queue item size ); xTaskCreate(Task1, "Task1", 100, NULL, 2, &TaskHandle_1); xTaskCreate(Task3, "Task3", 100, NULL, 2, &TaskHandle_3); xTaskCreate(Task2, "Task2", 100, NULL, 1, &TaskHandle_2 ); vTaskStartScheduler(); } void loop() { // empty } //definition of Task1, Task reads dht11 and display to LCD void Task1(void* pvParameters) { const char * const pcMessage = "Message from vSenderTask1"; static unsigned long lastEventTime = millis(); static const unsigned long EVENT_INTERVAL_MS = 10000; void pvParameters; while(1) { struct dht currentdht; // define a structure of type pinRead currentdht.t = dht.readTemperature(); // //Temperature value to Queue var currentdht.h = dht.readHumidity(); // Humidity value to Queue var lcd.setCursor(0, 0); // print static message 64 lcd.print(dht.readTemperature()); // print scrolling message lcd.setCursor(0, 1); // print static message lcd.print(dht.readHumidity()); // print scrolling message xQueueSend(structQueue, ¤tdht, portMAX_DELAY); //write struct message to queue } Serial.println("1"); //Just for debug vTaskDelay(100/ portTICK_PERIOD_MS); } //definition of Task2, Task process webserver service void Task2(void* pvParameters) { struct dht currentdht; // bien de nhan queue tu task string output; // bien de nhan queue tu task for( ;; ) { // Read structure elements from queue and check if data received successfully if (xQueueReceive(structQueue, ¤tPinRead, portMAX_DELAY) == pdPASS) { if ((millis() - lastEventTime) > EVENT_INTERVAL_MS) { events.send("ping",NULL,millis()); events.send(String(t).c_str(),"temperature",millis());// dong bo du lieu len webserver events.send(String(h).c_str(),"humidity",millis()); lastEventTime = millis(); } } if (xQueueReceive(xQueue3, &output, portMAX_DELAY) == pdPASS) { events.send(String(digitalRead(output)).c_str(),"relay_state",millis()); erial.println("1"); } } } 65 //definition of Task3, Task read button and control relay void Task3(void* pvParameters) { // read the state of the switch into a local variable int reading = digitalRead(buttonPin); // If the switch changed if (reading != lastButtonState) { // reset the debouncing timer lastDebounceTime = millis(); } if ((millis() - lastDebounceTime) > debounceDelay) { // if the button state has changed: if (reading != buttonState) { buttonState = reading; // only toggle the LED if the new button state is HIGH if (buttonState == HIGH) { output_state = !output_state; digitalWrite(output, output_state); Serial.println("1"); // save the reading Next time through the loop, it'll be the lastButtonState: lastButtonState = reading; String outstate = digitalRead(output); xQueueSend(xQueue1, &outstate, portMAX_DELAY); //write struct message to queue }}}} 3.9 Các bước thực  Chuẩn bị cáp MicroUSB, cắm vào cổng micro Kit, cấp nguồn cổng USB lên laptop gắn Cáp vào cục sạc điện thoại, sau cắm vào ổ điện  Chuẩn bị trước wifi có cấu sau: SSID: 123456 66 Password: 12345678 Băng tần 2.4Ghz Số người dùng tối đa tùy ý Hình 23 Cài đặt cấu hình Wifi điện thoại Hình 24 Cài đặt cấu hình Wifi laptop 67  Sau cài đặt xong, ta cắm điện vào mạch Sẽ có trường hợp xảy ra: o TH1: Mạch khởi động lên ln: Hình 25 Mạch chạy thành cơng o TH2: Mạch sau, nhấn nút reset vài lần (trường hợp chip chưa bắt Wifi) Hình 26 Chip chưa nhận Wifi 68  Trên mạch có nút: nút reset nút điều khiển relay Đèn led điều khiển webapp, relay điều khiển nút vật lý webapp  Dùng thiết bị phát wifi, thiết bị khác dùng chung mạng wifi với Kit Gõ vào khung tìm kiếm mã IP hình LED có kết sau: Hình 27 Demo webserver 69 3.10 Kết thu  Hệ thống hoạt động ổn đinh, khơng có tính tốn giải thuật lập lịch ưu tiên hệ thống hoạt động ổn khơng cần đáp ứng thời gian khắt khe  Trong điều khiện nhiệt độ T ≤ 40oC, độ ẩm < 90%, ta thu kết nhiệt độ giảm từ 5-7oC Từ điều chỉnh giảm lưu lượng gió quạt Từ đó, giúp tiết kiệm 30-40% lượng  Trong điều khiện nhiệt độ T ≤ 40oC, độ ẩm từ 30-40% ta thu kết nhiệt độ giảm từ 5-15oC Từ điều chỉnh giảm lưu lượng gió quạt Từ đó, giúp tiết kiệm 50% lượng 70 Kết luận  Kết luận chung Sau tìm hiểu, nghiên cứu hệ điều hành thời gian thực FreeRTOS vi điều khiển, đề tài hoàn thành số kết sau:  Tổng quát hệ điều hành nói chung phân loại hệ điều hành  Đi sâu vào nghiên cứu hệ điều hành thời gian thực RTOS, đưa khái niệm, cấu trúc, phân loại hệ điều hành thời gian thực đặc điểm chung hệ điều hành  Đưa khái niệm bản, tính bật lý mà hệ điều hành FreeRTOS trở nên phổ biến  Port hệ điều hành FreeRTOS lên vi điều khiển ESP32 thơng qua trình dịch ADRUINO  Định hướng phát triển Đề tài luận văn tập trung nghiên cứu lý thuyết đưa ví dụ đơn gian hệ điều hành thời gian thực FreeRTOS vi điều khiển nên cịn nhiều hạn chế, thiếu sót cần cải tiến để tiếp tục phát triển đề tài:  Lập trình ứng dụng cụ thể, có tính thực tiễn cao  Trong đề tài port đươc lên vi điều khiển ESP32, nhiều vi điều khiển khác để giúp phát triển thêm đề tài nhử STM, AVR, ARM, LPC… 71 Tài liệu tham khảo [1] Andrews S Tanenbaum, Modern Operating Systems, second edition, Prentice Hall PTR [2] A Burn & A.Wellings, Real Time Systems and Programing language, Addison Wesley, 1997 [3] Richard Barry, FreeRTOS.org – Copyright (C) 2003-2007, www.freertos.org [4] Jean J Labrosse, µC/OS-II for the Philips XA, www.ucos-ii.com/contents/support/downloads/an1000.pdf [5] Ulrich Kiffmeier, Real-Time Implementation, Control System, Robotics, and Automation –Vol II [6] embedded247, Hệ thống thời gian thực https://sites.google.com/site/embedded247/embedded_system/rtsystem [7] Kanaka Juvva, Real-Time Systems, users.ece.cmu.edu https://users.ece.cmu.edu/~koopman/des_s99/real_time/ 72 ... 12 4.2 Hệ điều hành thời gian thực với mục đích nghiên cứu 12 4.3 Hệ điều hành thời gian thực mở rộng tới Unix hệ điều hành khác 13 Một số hệ điều hành thời gian thực phổ biến... khai thác Chương Hệ điều hành thời gian thực Khái niệm hệ điều hành thời gian thực Hệ điều hành thời gian thực (real-time operation system-RTOS) tạo để giúp ứng dụng thời gian thực xử lý liệu... thiết bị vào Hình Sơ đồ chức hệ điều hành thời gian thực 11 Phân loại hệ điều hành thời gian thực 4.1 Hệ điều hành thời gian thực cho mục đích thương mại Các hệ điều hành kể tên như: Windows CE,

Ngày đăng: 07/12/2021, 19:37

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[4] Jean J. Labrosse, àC/OS-II for the Philips XA, www.ucos-ii.com/contents/support/downloads/an1000.pdf Sách, tạp chí
Tiêu đề: àC/OS-II for the Philips XA
[5] Ulrich Kiffmeier, Real-Time Implementation, Control System, Robotics, and Automation –Vol. II Sách, tạp chí
Tiêu đề: Real-Time Implementation, Control System, Robotics, and Automation
[6] embedded247, Hệ thống thời gian thựchttps://sites.google.com/site/embedded247/embedded_system/rtsystem [7] Kanaka Juvva, Real-Time Systems, users.ece.cmu.eduhttps://users.ece.cmu.edu/~koopman/des_s99/real_time/ Sách, tạp chí
Tiêu đề: Hệ thống thời gian thực"https://sites.google.com/site/embedded247/embedded_system/rtsystem [7] Kanaka Juvva, "Real-Time Systems
[1] Andrews S. Tanenbaum, Modern Operating Systems, second edition, Prentice Hall PTR Khác
[2] A. Burn &amp; A.Wellings, Real Time Systems and Programing language, Addison Wesley, 1997 Khác
[3] Richard Barry, FreeRTOS.org – Copyright (C) 2003-2007, www.freertos.org Khác

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w